JavaEE HttpServletRequest

描述

使用 HttpServletRequest 对象,获取表单提交数据,并使用 BeanUtils 工具类封装数据。

题目

使用 HttpServletRequest 对象,获取表单提交数据,并使用 BeanUtils 工具类封装数据。

题目解决思路

  1. 创建注册表单页面。
  2. 创建 JavaBean 对象,导入对应 jar 包。
  3. 使用 @WebServlet 注解的方式创建 Servlet
  4. 通过 HttpServletRequest 对象,使用 getParameterMap 方法,获取表单数据。
  5. 使用 BeanUtils 工具类,封装数据。

代码具体实现

注册界面:

<%@ 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>

User 类代码:

public class User { // 属性 private String name; private String gender; private String city; private String hobby[]; @Override public String toString() { return "User{" + "name='" + name + '\'' + ", gender='" + gender + '\'' + ", city='" + city + '\'' + ", hobby=" + Arrays.toString(hobby) + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } }

Servlet 代码:

@WebServlet("/demo05") public class Servlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); // 获取表单提交数据 Map<String, String[]> map = request.getParameterMap(); // 创建User对象 User user = new User(); // 使用BeanUtils工具类封装表单数据 try { BeanUtils.populate(user,map); } catch (Exception e) { e.printStackTrace(); } // 打印User对象 System.out.println("嗨客网(www.haicoder.net)\n"); System.out.println("【表单数据】:" + user); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }

所需 Jar 百度云资源地址:

链接:https://pan.baidu.com/s/1RNY7vMUbXTYBZRU_96cizg 提取码:5g98

导入 Jar 包,如下图:

06_Java HttpServletRequest.png

添加 Jar 到库中,如下图:

07_Java HttpServletRequest.png

选择 ok,如下图:

08_Java HttpServletRequest.png

项目结构如下:

09_Java HttpServletRequest.png

项目启动后,提交表单,如下图:

10_Java HttpServletRequest.png

可能出现乱码问题,如下图:

11_Java HttpServletRequest.png

当出现乱码问题,需要配置 Tomcat,如下图:

12_Java HttpServletRequest.png

配置编码,如下图:

13_Java HttpServletRequest.png

重新提交表单,程序运行成功,如下图:

14_Java HttpServletRequest.png

以上案例通过 HttpServletRequest 对象,获取表单提交的数据,并使用 BeanUtils 工具类封装数据。