获取JSP页面输入框中的数据

  • Post author:
  • Post category:其他


使用Java Bean获取输入框中的数据

制作一个动态网页,最关键的是后台数据的交互,在静态页面中,数据是在网页创建时就已经完成了的,而在动态页面中,数据是动态存在的,如登录后的用户名显示,这是在网页运行过程中,通过获取后台数据库中的数据,动态显示的。

在数据的获取中,可以使用request.getParameter()方法,依次获取网页中的数据,在该过程中,有个规定,网页中的参数名,实体类中的属性名,以及数据库中的关键字名必须一致。

但是在本方法中,如果使用在注册页面中,会出现代码量非常巨大的情况,还有个办法就是通过反射,先创建实体类的管理类对象,new一个map集合,将map集合转换成set集合,使用增强for循环,获取键值对,通过管理类的getDeclaredField(paramName)方法,得到一个field对象,打开属性私有属性赋值的权限。然后获取值就行,但该方法中,键值对的类型不统一,会出现错误。

因此,可以引入C3p0Util工具类以及BeanUtil工具类,首先,创建一个C3p0Util工具类,在类中书写如下代码:

 public static <T>T mapToBean(Class<T> c, Map map){
        try {
            T t = c.newInstance();
            BeanUtils.populate(t,map);
            return t;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

然后再创建一个Servlet类,在doPost中书写如下代码:

  request.setCharacterEncoding("utf-8");
        Map<String, String[]> map = request.getParameterMap();
        User user = C3p0Util.mapToBean(User.class, map);
        System.out.println(user);

现在可以运行网页,输入内容测试代码是否成功了。

当然,在后面代码中添加一段数据库的增删改查语句,就可以实现数据库与网页的同步啦!