【Java】【web】获取表单数据

获取表单数据

  • getParameter(String name) 通过名称获取表单数据

  • getParameterValues(String name) 提取复选框的方法

  • getParameterNames() 获取表单所有名称

  • getParameterMap() 获取表单提交的所有值

  • getInputStream() 获取表单字节流

  • html部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/demo" method="post">
    姓名:<input type="text" name="name" placeholder="姓名" value="测试">
    年龄:<input type="number" name="age" min="1" max="99" value="31">
    手机号:<input type="text" name="mobile" placeholder="手机号" value="13522178057">
    技能:
    <label><input type="checkbox" name="language" value="java">Java</label>
    <label><input type="checkbox" name="language" value="php">PHP</label>
    <label><input type="checkbox" name="language" value="python">Python</label>
    性别:
    <label><input type="radio" name="gender" value="1">男</label>
    <label><input type="radio" name="gender" value="0">女</label>
    <label><input type="submit" value="提交"></label>
</form>
</body>
</html>
  • servlet部分
public class Demo extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        Enumeration ids = request.getParameterNames();
        while (ids.hasMoreElements()) {
            String name = (String) ids.nextElement();
            System.out.print(name + ":");
            String[] values = request.getParameterValues(name);
            for (int i = 0; i < values.length; i++) {
                System.out.println(values[i]);
            }
        }
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        System.out.println("id:" + request.getParameter("id"));
    }
}
  • 直接填充到实体类中
@WebServlet(name = "Demo")
public class Demo extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
    
        TestEntity t = new TestEntity();
    
        System.out.println("封装数据前" + t);
    
        Map<String, String[]> map = request.getParameterMap();
    
        for (Map.Entry<String, String[]> m : map.entrySet()) {
            String name = m.getKey();
            String[] values = m.getValue();
    
            try {
                // 创建属性描述器
                PropertyDescriptor pd;
                pd = new PropertyDescriptor(name, TestEntity.class);
                // 获得setter
                Method setter = pd.getWriteMethod();
                if (values.length == 1) {
                    setter.invoke(t, values[0]);
                } else {
                    setter.invoke(t, (Object) values);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    
        System.out.println("封装数据后:" + t);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文包括:1、Filter简介2、Filter是如何实现拦截的?3、Filter开发入门4、Filter的生命周期...
    廖少少阅读 7,352评论 3 56
  • 一套完整的登陆注册业务逻辑 准备部分基础工具类Basepackage com.jericho.tools;impo...
    JerichoPH阅读 2,480评论 0 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,937评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,835评论 0 11