在本教程中,我们将向您展示如何在 Java Servlet 中获取所有请求参数。这是开发 Servelt 应用程序时必须考虑的最基本步骤,因为 HTTP 主要基于参数交换。
基本上,为了获取 Servlet 中的所有请求参数,应该执行以下步骤:
让我们看看下面的简单代码片段:
package com.javacodegeeks.snippets.enterprise;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetAllRequestParametersInServlet extends HttpServlet {
private static final long serialVersionUID = -2128122335811219481L;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
handleRequest(req, res);
}
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {
handleRequest(req, res);
}
public void handleRequest(HttpServletRequest req, HttpServletResponse res) throws IOException {
PrintWriter out = res.getWriter();
res.setContentType("text/plain");
Enumeration<String> parameterNames = req.getParameterNames();
while (parameterNames.hasMoreElements()) {
String paramName = parameterNames.nextElement();
out.write(paramName);
out.write("\n");
String[] paramValues = req.getParameterValues(paramName);
for (int i = 0; i < paramValues.length; i++) {
String paramValue = paramValues[i];
out.write("\t" + paramValue);
out.write("\n");
}
}
out.close();
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>JCG Snippets Web Project</display-name>
<servlet>
<servlet-name>JCG Snippets Application</servlet-name>
<servlet-class>com.javacodegeeks.snippets.enterprise.GetAllRequestParametersInServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JCG Snippets Application</servlet-name>
<url-pattern>/jcgservlet</url-pattern>
</servlet-mapping>
</web-app>
网址:
http://localhost:8080/jcgsnippets/jcgservlet?param1=paramvalue1¶m2=paramvalue2a¶m2=paramvalue2b
输出:
param2
paramvalue2a
paramvalue2b
param1
paramvalue1
这是一个关于如何在 Servlet 中获取所有请求参数的示例。