将URL参数从JSP传递到Servlet

将URL参数从JSP传递到Servlet,jsp,servlets,Jsp,Servlets,因此,我有一个JSP,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="l

因此,我有一个JSP,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个参数发送到我的JavaServlet代码中:URL的键、“firstname”的用户输入和“lastname”的用户输入。如何从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>");
}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
String firstname=request.getParameter(“firstname”);
字符串lastname=request.getParameter(“lastname”);
字符串key=request.getParameter(“key”);
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
out.println(“+”Hello:“+firstname+”+lastname+”。key:“+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>

您可以使用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");
  }
}

可以使用request.getParameter(“变量名称”)从查询字符串中读取参数

在你的情况下是这样的

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

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

下面的更新答案,现在可以使用了。我认为应该可以使用。请正确检查操作和路径。请发布您的web.xml文件。