zoukankan      html  css  js  c++  java
  • JSP开发模式

    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结构;公司.部门.项目.分包

  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/ss561/p/4642256.html
Copyright © 2011-2022 走看看