JavaEE HttpServletRequest

描述

使用 HttpServletRequest 对象,获取表单提交的数据。

题目

通过 HttpServletRequest 对象,获取表单提交的数据。

题目解决思路

  1. 使用 @WebServlet 注解的方式创建 Servlet。
  2. 通过 HttpServletRequest 对象,获取表单提交的数据。
  3. 使用 getParameter 获取单个参数的值。
  4. 使用 getParameterValues 获取多选框内容。
  5. 使用 getParameterNames 获取所有的参数名。
  6. 使用 getParameterMap 获取所有参数的名和值。

代码具体实现

注册页面代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>注册界面</title> </head> <body> <h2>用户注册</h2> <form action="demo05" method="post"> 用户名: <input type="text" name="name"><br/> 性别: <input type="radio" name="gender" value="男" checked="checked"/><input type="radio" name="gender" value="女"/><br/> 城市: <select name="city"> <option value="广州">广州</option> <option value="深圳">深圳</option> <option value="上海">上海</option> </select> <br/> 爱好: <input type="checkbox" name="hobby" value="篮球"/>篮球 <input type="checkbox" name="hobby" value="游泳"/>游泳 <input type="checkbox" name="hobby" value="跑步"/>跑步 <br/> <input type="submit" value="注册"/> </form> </body> </html>

Servlet 代码:

@WebServlet("/demo04") public class Servlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应的内容类型和编码 response.setContentType("text/html;charset=utf-8"); // 通过响应对象获取打印流 PrintWriter pw = response.getWriter(); pw.print("嗨客网(www.haicoder.net)<br/>"); pw.print("<br/>"); // 获取单个参数的值 pw.print("<h3>getParameter方法</h3>"); String name = request.getParameter("name"); pw.print("用户名参数:" + name + "<hr/>"); // 获取多选框内的内容 String[] hobbies = request.getParameterValues("hobby"); pw.print("爱好多选框:" + Arrays.toString(hobbies) + "<hr/>"); // 获取所有参数名 pw.print("<h3>getParameterNames方法</h3>"); Enumeration<String> parameterNames = request.getParameterNames(); // 遍历参数名 while(parameterNames.hasMoreElements()){ String parameterName = parameterNames.nextElement(); // 得到参数值 String parameterValue = request.getParameter(parameterName); // 输出结果 pw.print("参数名:" + parameterName + " 参数值:" + parameterValue + "<hr/>"); } // 获取所有参数 pw.print("<h3>getParameterMap方法</h3>"); Map<String, String[]> parameterMap = request.getParameterMap(); parameterMap.forEach((k,v) -> pw.print("参数名:" + k + " 参数值:" + Arrays.toString(v) + "<hr/>")); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }

运行项目,注册界面,如下图:

04_Java HttpServletRequest.png

页面回显表单数据,如下图:

05_Java HttpServletRequest.png

通过 HttpServletRequest 对象,获取表单提交的数据。