从JSP传递参数到Servlet

5
如何使用表单从 JSP 传递参数到 Servlet,而这些参数不属于表单中的任何字段,并且不使用会话。我认为代码可能像下面的示例一样,但对我来说不起作用。请帮帮我。
在 index.jsp 中:
<form method="Post" action="servlet">
        <input type="text" name="username">
        <input type="password" name="password">
          <% 
              int z=1;
              request.setAttribute("product_no", z);%>
        <input type='submit' />
</form>

在servlet.java中:

 int x=Integer.parseInt(request.getAttribute("product_no").toString());
2个回答

10

您的表单需要被提交,例如有一个提交按钮。并且您需要将参数作为输入。在表单内调用request.setAttribute不起任何作用。设置请求属性是用于当您要使用调度程序转发请求时,而不是在使用表单时。

<% int z=1; %>
<form method="Post" action="servlet">
        <input type="text" name="username" />
        <input type="password" name="password" />
        <input type="hidden" name="product_no" value="<%=z%>" />
        <input type='submit' />
</form>

但是如果我想在表单提交时传递参数,而不使用任何输入字段,我该怎么做? - Patriotic
@user3751576,我不理解你的问题。你想问什么?这里的真正目标是什么? - developerwjk
我明白了,谢谢。所以,要通过表单传递值,我们必须使用一个输入字段。我想现在我是正确的。 - Patriotic

8

您可以使用以下方法接收提交表单时所传递的参数:

request.getParameter("fieldname");

例如,您的servlet可以获取所有字段:
 @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {

                            String username= request.getParameter("username");
                            String password= request.getParameter("password");

            }
}

您还可以从链接中发送参数,例如:
<a href="Servlet?nameOfParameter=valueOFparameter">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接