运用JSP/Servlet实现的Web动态交互,主要采用:

模式一:JSP+JavaBean

链接:http://wxmimperio.coding.io/?p=155

模式二;JSP+Servlet+JavaBean

链接:http://wxmimperio.coding.io/?p=189


JSP和Servlet的比较

从技术角度看,其实JSP和Servlet是一样的,因为所有的JSP都会编译成Servlet,并且在Servlet容器中执行。

JSP相对于Servlet的优势:

  • JSP以显示为中心,它为Web前端开发提供了更方便的开发
  • JSP可以将显示和内容分离,这样项目的显示和业务逻辑开发可以分开同时进行
  • JSP由容器自动编译

在Web建站时,如果功能不是非常稳定,则不建议使用Servlet。因为Servlet比JSP更难于维护,它需要编译成.class,而修改JSP时只要修改它的源文件,容器就会自动对JSP的变化重新进行编译,这也就是我在IDEA里用Jrebel进行热部署的时候,JSP文件编辑即显示,而修改Servlet文件时想要看到变化必须重新启动服务器生成.class文件。

模式一和模式二的区别:

  1. 处理的主控部分不同。模式一利用JSP作为主控部分,将用户的请求、JavaBean和事件响应有效的连接起来。模式二利用Servlet作为主控部分。
  2. 实现表现层、业务逻辑层和数据层的分离程度不同。模式二比模式一有更好的分离效果。当业务逻辑比较复杂时,模式一会导致JSP文件中嵌入大量的Java代码,不利于独立的开发和维护。模式二中,Servlet处理HTTP请求、JavaBean承担业务逻辑的处理,JSP仅负责获取数据生成动态页面的工作,可以将前端和后台有效的分开,有利于开发。
  3. 适用于动态交互处理的需求不同。当业务逻辑比较复杂、涉及到很多的JavaBean组件时,模式二有更加清晰的页面显示、更明确的开发模块划分。然而模式二需要编写Servlet程序,需要运用Java的编程工作量较大。对于较小的项目用模式一是不错的选择,对于要求封装性、维护性、安全性的大项目可以考虑用模式二。

两种模式的技术特点:

JSP+JavaBean模型

工作原理是:当HTTP发出请求时,JSP接收请求并访问JavaBean,当需要访问数据库或者服务器时,则通过JavaBean做相应处理。JavaBean将处理的结果返回JSP,JSP生成动态html将结果传送到浏览器并显示,用户得到交互结果。JSP作为视图,同时也有部分控制器的功能,JavaBean组件作为模型和控制器组件。

模式一的传递关系图:

JSP+Servlet+JavaBean模型

是典型的MVC模型,将程序分为3个层次—Model(模型层)、View(视图层)、Controller(控制器层)。Model层实现业务逻辑,包含了Web应用程序的核心,负责储存与数据的相关操作;View层负责用户界面及交互结果的显示;Controller层主要负责Model和View层之间的控制关系。

具体实现:

  • JavaBean作为Model层,实现各个具体功能的业务逻辑
  • Servlet作为Controller层,处理HTTP请求
  • JSP作为View层,将交互的结果显示到界面。用于信息的共享,获取Servlet生成的对象或JavaBean,从中获取数据,动态生成html页面用于显示。

工作原理是:用户请求首先发送到Servlet,Servlet通过JDBC连接数据库,执行数据库操作。操作完成后再用JavaBean封装执行的结果,然后把结果保存到请求对象中,最后把视图派发到用于显示的JSP页面中。JSP页面读取Servlet的执行结果并进行显示。这种模式中,个组件的分工关系明确,JSP用于显示,它充当了视图的角色;Servlet用于执行业务逻辑,它相当于控制器的角色;JavaBean组件用于表示数据,相当于模型的角色。

模式二的传递关系图:

参考:JSP应用开发详解(第三版)

JSP中两种模式的总结的更多相关文章

  1. jsp中两种include的区别【转】

    引用文章:http://www.ibm.com/developerworks/cn/java/j-jsp04293/ http://www.cnblogs.com/lazycoding/archive ...

  2. JSP中两种include的区别

    首先说明这两种都是什么: <%@ include file=”relativeURI”%> 可以叫作静态include(静态包含),是jsp指令中的一种,(JSP指令控制JSP编译器如何去 ...

  3. JSP中使用的模式——JSP+Servlet+JavaBean

    上一篇博文写到模式一:JSP+JavaBean 链接地址:http://wxmimperio.coding.io/?p=155 JSP中两种模式的总结 链接地址:http://wxmimperio.c ...

  4. JSP中使用的模式——JSP+JavaBean

    模式二:JSP+Servlet+JavaBean 链接地址:http://wxmimperio.coding.io/?p=189 JSP中两种模式的总结 链接地址:http://wxmimperio. ...

  5. 协议中UART的两种模式 【转】

    转自:http://wjf88223.blog.163.com/blog/static/3516800120104179327286/ ^^…… 协议栈中UART有两种模式:1.中断2.DMA 对于这 ...

  6. LoadRunner中两种录制模式的区别

    决定我们成为什么样人的,不是我们的能力,而是我们的选择. ——<哈利-波特与密室> 一.先看看两种模式的设置和录制脚本的区别 设置HTML录制模式: 设置URL录制模式: HTML脚本: ...

  7. Spark中的两种模式

    两种模式 client-了解 cluster模式-开发使用 操作 1.需要Yarn集群 2.历史服务器 3.提交任务的的客户端工具-spark-submit命令 4.待提交的spark任务/程序的字节 ...

  8. Windows2003 IIS6.0支持32位和64位两种模式的设置方法

    IIS 6.0 可支持 32 位和 64 位两种模式.但是,IIS 6.0 不支持在 64 位版本的 Windows 上同时运行这两种模式.ASP.NET 1.1 只在 32 位模式下运行.而 ASP ...

  9. 【转】Reactor与Proactor两种模式区别

    转自:http://www.cnblogs.com/cbscan/articles/2107494.html 两种IO多路复用方案:Reactor and Proactor 一般情况下,I/O 复用机 ...

随机推荐

  1. maven search

    开放的一些maven search 1:官方 http://search.maven.org/ 2:http://maven.ozacc.com/ 3:http://mvnrepository.com ...

  2. PowerMock注解PowerMockIgnore的使用方法

    故事要从一个异常开始,某天我在开发一个加密.解密特性,算法使用的是3DES,样例代码如下. package org.jackie.study.powermock; import java.io.Uns ...

  3. HDU 4389——X mod f(x)(数位DP)

    X mod f(x) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Probl ...

  4. 在WinForm中使用委托来在其他线程中改变控件的显示

    假设winform中有两个控件: 1.ListView用来显示进度的文本提示,ID:listView_progressInfo 2.ProgressBar用来显示进度,ID:progressBar1 ...

  5. 关于weight属性使用的一些细节

    之前被这个属性困扰过好久,今天一个偶然的机会,终于把这个搞清楚了,现在与大家分享一下. 假设我们要在一个LinearLayout布局中显示两个按钮,button1和button2,button2的宽度 ...

  6. HTML5 Canvas 2D绘图

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4851774. ...

  7. Navicat 看历史执行SQL

    Navicat可以通过这个框口看手动操作所执行的代码操作

  8. 基础之 window-self-top-opener

    今天我都在怀疑,很多项目还用不用iframe这个框架做页面布局. 如果你有兴趣想告诉我,请给我留言. 一. 说明 注:这里top和window.top等价,window是可以省略的,有得情况下不允许省 ...

  9. [功能帮助类] C#RandomHelper随机数,随机字符,可限制范围-帮助类 (转载)

    点击下载 RandomHelper.rar 主要功能如下 .生成一个指定范围的随机整数,该随机数范围包括最小值,但不包括最大值 .生成一个0.0到1.0的随机小数 .对一个数组进行随机排序 . 一:随 ...

  10. [XML] C#ResourceManagerWrapper帮助类 (转载)

    点击下载 ResourceManagerWrapper.rar /// <summary> /// 类说明:ResourceManagerWrapper /// 编 码 人:苏飞 /// ...