HttpServletRequest对象提供了多个方法来获取HTTP请求中的参数。以下是一些常用的方法:
getParameter(String name): 获取单个请求参数的值。参数name为请求参数的名称。
getParameterValues(String name): 获取多个请求参数的值。参数name为请求参数的名称,返回一个包含所有值的字符串数组。
getParameterMap(): 获取所有请求参数的键值对。返回一个Map对象,其中键为参数名称,值为参数值。
getQueryString(): 获取请求参数的原始查询字符串。如果请求没有参数,则返回null。
getParameterNames(): 获取所有请求参数的名称。返回一个枚举类型的对象,包含所有参数名称。
以下是一个示例,演示如何使用HttpServletRequest对象获取HTTP请求中的参数:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
String age = request.getParameter("age");
out.println("<html>");
out.println("<head>");
out.println("<title>My Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello, " + name + "!</h1>");
out.println("<p>You are " + age + " years old.</p>");
out.println("</body>");
out.println("</html>");
}
}
在上面的代码中,我们首先使用request对象的getParameter()方法来获取名为"name"和"age"的请求参数的值。然后,我们将这些值插入到响应HTML页面的文本中,并使用response对象的getWriter()方法将响应发送回客户端。
在将该Servlet部署到Web应用程序中后,当客户端通过POST方法向该Servlet发送请求时,它将从请求中获取名为"name"和"age"的参数,并将它们插入到响应HTML页面的文本中。例如,如果我们将该Servlet部署到名为"myapp"的Web应用程序中,并使用默认的端口号8080,则可以使用以下URL来向该Servlet发送请求:
http://localhost:8080/myapp/MyServlet?name=John&age=25
在上面的URL中,我们将"name"参数设置为"John",将"age"参数设置为"25"。当我们访问该URL时,该Servlet将从请求中获取这些参数的值,并将它们插入到响应HTML页面的文本中。页面将显示以下内容:
Hello, John!
You are 25 years old.