JSP开发模式
JSP+JavaBean模式与JSP+Servlet+JavaBean模式
Model1,
JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,在这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据,(JSP中编写业务控制逻辑代码)
Model2,
JSP+Servlet+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,Servlet负责处理用户请求,jsp负责数据显示,javaBean负责封装数据,各个模块之间层次清晰,web开发推荐采用此种模式。
MVC架构模式组成
1,Model(模型)封装数据,处理数据
2,View(视图)用来页面显示
3,Controller(控制器)控制程序处理流程
JavaBean
JavaBean是一个类,必须存在一个无参数的构造方法,所有成员属性都是private私有化的,向外提供访问方式get和set方法。
在JSP规范中,提供了三个与JavaBean相关的动作标签
<jsp:useBean id="person" scope="page" class="cn.itcast.javabean.Person">用于在指定的域范围内查找指定名称的应用,如果存在返回该JavaBean对象Person的引用保存在page域范围内的person属性中
<jsp:setProperty property="name" name="person" value="Tom">设置属性,注意property="*"时自动存储
<jsp:getProperty property="name" name="person">获取属性显示在页面
因为实际开发中主要使用Model2模式所以javaBean标签现在很少使用
Model1,简单计算器主页
javaBean封装计算器数据与运算
JSP显示页面,处理请求
非法数据的校验(客户端校验通过JS,服务端校验)
客户端校验
在form表单提交数据时,onsubmit事件返回checkForm方法
<form onsubmit="return checkForm()">
<script>
function checkForm(){
var first=document.getElementById("first").value;
var second=document.getElementById("second").value;
if(first==""||isNaN(first)){
alert("第一个参数必须是数字");
return false;//返回false提交不成功
}
....
}
</script>
关于精度问题的处理使用java中的BigDecimal类进行处理
内省(introspector)
JDK提供的一套JavaBean操作的API,对JavaBean的操作可以通过反射技术操作,而JDK就提供了一套基于反射技术操作JavaBean的方法即内省技术
1,导包imort java.beans.*
2,通过Introspector或得JavaBeanInfo信息
Introspector.getBeanInfo(Person.class);
3.通过JavaBeanInfo对象获取所有属性描述器和方法描述器,返回的是一个数组
getMethodDescriptor()
getPropertyDescriptor()
4.遍历通过属性和方法设置javabean数据
内省封装form数据到javabean中的过程一般不自己编写,使用已经写好的工具开发包BeanUtils内省开发包,其中封装了对javabean的操作
BeanUtils由阿帕奇公司提供,专门进行javaBean操作,在web层开发框架中被集成内置使用。
下载BeanUtils的jar;commons-beanutils connons-logging
将beanutils和logging的jar包复制到web-inf下的lib中
接下来就可以编写beanutils的封装程序了
在Servlet处理请求程序中
Person p=new Person()
Beanutils.populate(p,request.getParameterMap()); 该方法直接将接收到属性map集合封装到对象中
在进行数据封装时,当客户端提交的数据类型与javabean封装属性数据类型不同时,需要进行类型转换,beanutils内部封装了类型转换器接口和一些常见的转换器实现,对于特殊类型的数据需要自定义转换器实现该接口Converter,复写convert转换方法。
Model2案例;用户注册和登录
1,将用户信息保存xml文件中-----xml文件读写 pull解析
2,注册;将用户信息写入xml ----xml节点操作---一次性验证码
3,登录;xml节点查询,----记住用户账号密码
注册功能 register.jsp(注册页面form表单)----RegisterServlet----封装数据Uesr-----将User信息写入XML UserModel-----注册结果页面Jsp
步骤
1,创建web工程
2,导入jar包搭建环境,xpp3.jar,beanutils.jar,logging.jar
3.创建Package结构;公司.部门.项目.分包