将URL参数从JSP传递给Servlet

时间:2014-06-10 01:41:47

标签: jsp servlets

所以我有一个随机生成的"密钥"在URL中,这将是这样的:

url.com/reset.jsp?key=1234

我的JSP在表单

中有两个文本输入
<form action="ResetServlet" method="post" enctype="multipart/form-data">
<input type="text" name="firstname" size="24" value="">
<input type="text" name="lastname" size="24" value="">
</form>

我尝试发送3个参数:来自URL的键,&#34; firstname&#34;的用户输入,&#34; lastname&#34;的用户输入到我的Java Servlet代码。如何从Servlet代码中读取3个参数?任何人都可以指点我的教程或解释我怎么能这样做?感谢。

修改 所以我编写了以下简单的servlet代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String firstname = request.getParameter("firstname");
    String lastname = request.getParameter("lastname");
    String key = request.getParameter("key");

    response.setContentType("text/html");

    PrintWriter out = response.getWriter();
    out.println("<h1>" + "Hello: " + firstname + " " + lastname + ". key: " + key + "</h1>");
}

它显示:

  

您好:null null。 key:null

无论我输入什么。我做错了什么?

4 个答案:

答案 0 :(得分:1)

只需在页面呈现时在表单中保存key参数。

<!-- declare at top of JSP -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<form action="ResetServlet" method="post" enctype="multipart/form-data">
  <input type="text" name="firstname" size="24" value="">
  <input type="text" name="lastname" size="24" value="">

  <input type="hidden" name="key" value="<c:out value='${param.key}'/>">
</form>

答案 1 :(得分:0)

您可以使用HttpServletRequest.getParameter(String)方法。例如,

public class ResetServlet extends HttpServlet {
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    String firstName = request.getParameter("firstname");
    String lastName  = request.getParameter("lastname");
    String key       = request.getParameter("key");
  }
}

答案 2 :(得分:0)

可以使用request.getParameter(&#34; variable_name&#34;)读取查询字符串中的参数;

在你的情况下它将是

.....doPost(HttpServletRequest request, HttpServletResponse response) {
  String firstName = request.getParameter("firstname");
  String lastName  = request.getParameter("lastname");
  String key       = request.getParameter("key");
}

答案 3 :(得分:0)

只需删除表单标记中的enctype部分。