08JavaBean技术与JSP开发模型

1. JavaBean技术

1.1 JavaBean概述

  • 早期的JSP开发方式需要将Java代码嵌入网页中,给修改和维护带来一定的困难

在这里插入图片描述

  • 将Java代码单独封装成一个处理某种业务逻辑的类,然后再JSP页面中调用此类,可以降低HTML代码与Java代码之间的耦合度,简化JSP页面,这种类就是JavaBean组件

    在这里插入图片描述

  • JavaBean特点:

    • JavaBean必须具有一个无参的构造函数
    • 属性必须私有化
    • 私有化的属性必须通过public类型的方法暴露给其他程序,并且方法的命名也必须遵守一定的命名规范

1.2 JavaBean种类

  • 可视化的JavaBean:一般用于Swing程序中,在Web开发中不会采用
  • 非可视化的JavaBean:实现一些业务逻辑或封装一些业务对象

1.3 JavaBean的应用

  • 获取JavaBean属性信息

    <!--获取类的实例,其内部是通过调用类的默认构造方法实现的-->
    <jsp:useBean id="stu" class="com.why.Student"></jsp:useBean>
    <!--获取JavaBean中的属性,其内部是通过调用属性的getter()实现的-->
    <jsp:getProperty name="stu" property="password"></jsp:getProperty>
    
  • 对JavaBean属性赋值

    <jsp:setProperty name="stu" property="password" value="123"></jsp:setProperty>
    
    <!--表单信息中的属性最好设置成JavaBean中的属性名称,这样就可以通过<jsp:serProperty name="stu" property="*"/>的形式接收所有参数-->
    <jsp:userBean id="stu" class="com.why.Student">
    	<jsp:setProperty name="stu" property="*"></jsp:setProperty>
    </jsp:userBean>
    

2. 使用JavaBean解决中文乱码

  • 创建对字符编码进行处理的JavaBean

    public class CharactorEncoding{
        public CharactorEncoding() {}
        
        public String toString(String str) {
            String text = "";
            if(str != null && !"".equals(str)) {
                try{
                    //将字符串使用的"ISO-8859-1"转换为"UTF-8"
                    text = new String(str.getBytes("ISO-8859-1"), "UTF-8");
                } catch(UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
            return text;
        }
    }
    
  • 在jsp页面中使用方式

    <jsp:userBean id="stu" class="com.why.Student"></jsp:userBean>
    <jsp:userBean id="encoding" class="com.why.CharactorEncoding"></jsp:userBean>
    <%=encoding.toString(stu.getName())%>
    

    注意:在jsp页面使用Java代码调用JavaBean对象中的属性或方法,Java代码所使用的对象名为<jsp:useBean>中的id属性值

3. JSP开发模型

  • JSP早期模型的工作原理

    在这里插入图片描述

  • JSP Model1

    在这里插入图片描述

    • 简单轻便,适合小型Web项目的快速开发
    • 由图可知JSP Model1将封装数据和处理数据的业务交给了JavaBean组件,JSP只负责接收用户请求和调用JavaBean组件响应用户的请求
  • JSP Model2

    在这里插入图片描述

    • 采用 JSP + Servlet + JavaBean,将原本JSP页面中的流程控制代码提取出来,封装到Servlet中,实现页面显示、流程控制、业务逻辑的分离Model2实际就是MVC设计模式
    • Servlet充当了控制器的角色,它首先接收浏览器发送的请求,然后根据请求信息实例化JavaBean对象,由JavaBean对象完成数据库操作并将操作结果进行封装,最后选择相应的JSP页面将相应结果显示在浏览器中

4. MVC设计模式

  • 模型(Model)负责管理应用程序的业务数据,定义访问控制以及修改这些数据的业务规则当模型的状态发生变化时,它会通知视图发生改变并为视图提供查询模型状态的方法
  • 视图(View):负责与用户进行交互,它从模型中获取数据向用户展示,同时也能将用户请求传递给控制器进行处理。当模型的状态发生改变时,视图会对用户界面进行同步更新,从而保存于模型数据的一致性
  • 控制器(Controller):负责应用程序中处理用户交互的部分,它从视图中读取数据,控制用户输入,并向模型发送数据

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CL3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值