所以我有一个随机生成的"密钥"在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
无论我输入什么。我做错了什么?
答案 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部分。