Servlet+JSP+JavaBean开发模型

本文详细介绍了Servlet、JSP和JavaBean在JavaWeb开发中的作用和执行流程。Servlet作为动态web资源,负责接收和响应HTTP请求;JSP结合HTML代码和Java代码,用于生成动态网页;JavaBean则作为数据封装组件。接着,文章对比了Servlet+JSP+JavaBean开发模型与MVC模型,指出了该模型在Controller、View和Model层的职责分配,并分析了该模型的缺点,如Servlet作为Controller时控制逻辑的复杂性,JSP作为View时更换视图的困难,以及JavaBean作为Model时组件庞大的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Servlet

Servlet是用于开发动态web资源的技术,Servlet部署在web服务器上,被动地接收web浏览器的请求,并将处理结果通过响应告知用户。

Servlet的执行过程:
1. web浏览器向web服务器提出http请求。
2. web服务器解析请求的主机,应用和web资源
3. 如果是初次访问该servlet,则创建servlet对象,并调用Init()方法,否则下一步
4. 调用servlet对象的service方法,并生成新的HttpRequest和HttpResponse对象,传入该servlet对象。在service方法中,会调用doPost()或doGet()方法,处理请求。
5. servlet返回响应信息,web服务器返回响应信息。
url序列图

二、JSP

jsp 是包含HTML代码和JAVA代码的java server page.

jsp执行的是jsp的class文件,其原始的java代码继承与HttpJspBase类,而HttpJspBase类继承与HttpServlet类。
jsp拥有九大对象,其中page,HttpResponse和HTTPRequest对象已经被实例化。
这里写图片描述

三、JavaBean

JavaBean是满足某些特定书写规则并实现某些功能的JAVA类。

  • 具有一个无参的构造函数
  • 属性必须私有化
  • 私有化的属性通过public类型的方法暴露给其它程序

JavaBean在javaweb中的主要应用是封装数据。对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。

JSP页面包含三个JavaBean的标签。

<jsp:useBean id="Name" class="package.class" scope="page"/>
<jsp:setProperty name="Name" property= "*" /> 
<jsp:getProperty name="Name" property="PropertyName" /> 

<jsp:useBean>标签会在指定范围内指定类的指定名称的对象,如果没有找到,则实例化一个对象。
<jsp:setProperty标签可以通过自省机制,将网页表单提交的属性值封装在javaBean的对象中。
<jsp:getProperty>标签通过调用getter方法,获得该对象的某个属性的值。

四、Servlet+JSP+JavaBean开发模型与MVC模型

1、典型的MVC模型

  • Model模型:主要用于业务逻辑的处理,对数据进行增删改查。
  • View视图:展示模型数据,并提供人机交互界面,用于功能请求等。
  • Controler控制器:接收用户的请求,委托模型进行处理,选择视图展示返回数据。

这里写图片描述

2、Servlet+JSP+JavaBean开发模式

在web应用中,不考虑websocket和HTML5等技术,基本上web服务器不会主动地反馈信息给web浏览器,因此,Model不会主动将模型推给视图。并且,Model的数据获取和修改都依赖数据库。因此,Servlet+JSP+JavaBean开发模型下的MVC模型如下图所示:
这里写图片描述

3、Servlet+JSP+JavaBean开发模式的缺点

  • Servlet作为Controller的缺点
    • 请求参数到模型的封装比较麻烦
    • 控制逻辑可能比较复杂
    • 选择下一个视图,严重依赖Servlet API
    • 给视图传输要展示的模型数据,也需要使用Servlet API
  • JSP作为View的缺点
    • 很难更换视图,比如Velocity、FreeMarker
  • JavaBean作为Model的缺点
    • JavaBean组件负责收集封装数据,业务逻辑处理,造成JavaBean组件类很庞大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值