通过url将值从javascript传递到servlet

通过url将值从javascript传递到servlet,javascript,servlets,Javascript,Servlets,我正在使用submit按钮使用Javascript为行获取唯一的“ID”,Javascript稍后会将该ID值传递给名为EditRecord的servlet。当我将submit按钮包含在表单中时,按钮值(行的唯一id)不会传输到servlet,并且URL中没有该值,但当我将submit按钮放在表单外部时,我可以看到按钮值,但页面被重新更正为空白页面。不知道问题出在哪里 提前谢谢 下面是javascript的代码 <script type="text/javascript">

我正在使用submit按钮使用Javascript为行获取唯一的“ID”,Javascript稍后会将该ID值传递给名为EditRecord的servlet。当我将submit按钮包含在表单中时,按钮值(行的唯一id)不会传输到servlet,并且URL中没有该值,但当我将submit按钮放在表单外部时,我可以看到按钮值,但页面被重新更正为空白页面。不知道问题出在哪里

提前谢谢

下面是javascript的代码

<script type="text/javascript">
    function editRecord(id)
    {
        url="EditRecord";
        window.location.href="http://localhost:8080/DbCon/"+url+"?id="+id;
        user_id="?id="+id;

    }
    </script> 

您应该将包含参数名称的字符串传递给
getParameter
,您正在传递定义为
string id=null
id
变量

您想要的是
“id”
,而不是
id


旁白

您有一个try/catch块,但您没有对该块进行任何处理。如果查看生成的异常,您会发现调试代码要容易得多


您正在将用户输入直接插入到某些SQL中。这会使你容易受到攻击,你需要摆脱它们。

你考虑过使用Ajax吗?@Dumisani我没有像现在这样使用Ajaxknow@Dumisani-为什么?“那只会让事情变得更复杂。”库内廷谢谢你的回答。我尝试了,但单击提交按钮时,URL中缺少已单击行的id值。我不知道问题出在哪里。请引导me@Thileepan-当你问原始问题时,你说id在URL中可见。我建议您更改的代码在生成URL的代码之后运行,所以它不可能导致这样的情况。“你一定换了别的东西,把它换回去。”昆汀我已经编辑了我的问题。另外,你所说的建议很有用,我改为“id”,但我已在编辑的问题中说明了我的问题。请引导我。
<TABLE align="Center" border="1px" width="80%">
    <%Iterator itr;%>
    <%List data=(List) request.getAttribute("UserData");
    for(itr=data.iterator();itr.hasNext();)
    {%>
        <tr>
            <% String s= (String) itr.next(); %>
            <td><%=s %></td>
            <td><%=itr.next() %></td>
            <td><%=itr.next() %></td>
            <td><%=itr.next() %></td>

            <form action="EditRecord" method="post">
            <td><input type="submit" value="Edit" name="edit"  onclick="editRecord(<%=s %>);"> </td>
            </form>

            <td><input type="submit" value="Delete" name="delete" onclick="deleteRecord(<%=s %>);"></td>

    <%} %>
    </tr>
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Connection conn;
    Statement stmt;
    ResultSet res = null;
    String id = null  ;
    String query;
    DatabaseConnection dbconn;


//  protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    try{

        id=request.getParameter(id);
        System.out.println(id);
        dbconn=new DatabaseConnection();
        conn=dbconn.setConnection();
        System.out.println(conn);
        stmt=conn.createStatement();
        System.out.println(stmt);
        query="select * from user_details where User_id="+id;
        res=dbconn.getResultSet(query, conn);
        System.out.println(res);

    }catch (Exception e)
    {

    }finally{
        request.setAttribute("EditData", res);
        RequestDispatcher rd=request.getRequestDispatcher("/editdata.jsp");
        rd.forward(request, response);
        out.close();
    }