例如,前端HTML页面上包含一个表单,表单里是一个input 文本框,想要在Servlet中获取该表单提交过来的值,可以利用以下四种方法调用。

<input type=\"大众text\公众 name=\公众username\"大众 />

最常用HttpServletRequest中的干系方法:

jsp获得form表单内的数据类型获取表单数据封装对象及应用BeanUtils NoSQL

1. getParameter(name) 根据表单中name属性的名,获取value属性的值方法

getParameterValues(String name)专业为复选框取取供应的方法 返回的是一个String类型的数组

getParameterNames() 得到表单提交的所有name的方法 得到form表单所有的标署名,返回值为列举(Enumeration) 用法和迭代器类似。
通过迭代,获取标署名,调用getParameterValues方法传入名称,根据名称获取值。

getParameterMap 到表单提交的所有值的方法。
得到表单项里 标署名与值对应的凑集 key:标署名;value:标签值

getInputStream 以字节流的办法得到所有表单数据。
表单提交办法为post时,要求正文有内容,可以利用getInputStream得到表单数据。

当成功获取到前端数据后,就可以连续完全封装工具的操作。

我们以getParameterMap方法为例完成工具的封装

将前台得到的数据封装工具

案例:

创建实体类javabean User.java

(约定大于配置原则 创建JavaBean

建议前端页面表单项name,JavaBean中的属性名 以及 数据库表里的字段名保持同等 方便我们的代码前后端统一 和日后功能扩展)

编写servlet.java

配置web.xml

修正register.html 的aciton地址提交到指定的Servlet中

BeanUtils

由于前几种封装工具方法过于繁琐 我们不才面接下来的开拓中利用这一种封装工具方法

把稳:如果想利用BeanUtils自动封装数据,表单form中元素的name须要与JavaBean中的属性同等。

什么是BeanUtils

BeanUtils一套开拓包,Apache公司供应 ,专门进行javabean操作,在web层各种框架中被利用,例如:struts 利用BeanUtils操作JavaBean 。

实例

1、下载BeanUtils的jar :commons-beanutils 、commons-logging,须要同时下载两个jar包。
(BeanUtils依赖Logging的jar包 )

2、将beanutils和logging的 jar包复制 工程/WebContent/WEB-INF/lib

把稳:引BeanUtils包时要引org.apache.commons.beanutils

常用方法:

BeanUtils.populate(Object bean, Map properties)方法进行数据封装

由于须要为Map类型,因此须要通过request.getParameterMap()方法将form表单中的数据变为Map类型

HTML页面传到Servlet中的数据都因此String字符串形式传输的,假设,我们传入String类型的生日,想要存储到JavaBean中Date类型的属性中。
这里面就涉及到String类型转换成Date类型。
当须要进行转换时,就必须创建自定义转换器。

自定义转换器利用步骤

让该类实现Converter 接口,重写convert方法。

在convert方法中进行格式转换 设置日期格式

注册转换器

创建实现类重写方法

由于在转换器中定义了“yyyy年MM月dd日”的格式,因此在jsp页面的form表单须要输入信息为“1998年2月12日”这类的格式的字符串,才可以通过我们自定义的转换器进行转换,转换为Date类型并之后进行存储。

注册转换器

通过调用静态方法 完成转换器的注册

ConvertUtils.register(转换器, 目标类型.class);

修正之后的Servlet程序:

BeanUtils结论

BeanUtils.populate(Object bean, Map properties)方法进行数据封装

一样平常实在不须要自定义转换器,只有在分外情形下才会自定义转换器