运用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. EasyUI-动态添加tab

    layout效果 代码: <%@ page language="java" contentType="text/html; charset=utf-8" ...

  2. SQL Server与Oracle对比学习:权限管理(二) 一些有趣的比喻

    http://blog.csdn.net/weiwenhp/article/details/8094739 目录(?)[-] SQL Server权限管理 login 与user的区别 角色role ...

  3. soap实例入门(转)

    SOAP的HelloWord实例- - 1.1  前言 2005-3-2公司开会并分给我一个任务:写一个程序从福建移动的BOSS系统取出一些相关数据.我得到的资料仅仅有一个“福建移动BOSS与业务增值 ...

  4. oracle6

    转换函数  介绍 转换函数用于将数据类型从一种转为另外一种.在某些情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型 比如: crea ...

  5. 【转】cocos2d-x游戏开发(八)各类构造器

    欢迎转载:http://blog.csdn.net/fylz1125/article/details/8521997 这篇写cocos2d-x的构造器. cocos2d-x引入自动释放机制后,创建的对 ...

  6. CentOS6.5一键安装MySQL5.5.32(源码编译)

    ###################################################mysql_install.sh                                 ...

  7. android开发之使用拼音搜索汉字

    国庆回了趟家,昨天真不想走,离家近的感觉太好.唉,不扯这些,说说今天的正事吧. 上篇博客中介绍了自定义AutoCompleteTextView ,但是用到了一个很蹩脚的技术,就是我们事先把每个汉字的拼 ...

  8. 需要重新启动计算机.必须重新启动计算机才能安装 SQL Server

    在开始运行中输入regedit找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager 在右边窗口找到PendingFi ...

  9. springmvc使用@ResponseBody返回json乱码解决方法

    1.springmvc 3.2以上的版本解决乱码的方法: 第一步:在配置中加入: <mvc:annotation-driven> <mvc:message-converters re ...

  10. RelativeLayout相对布局 安卓布局技巧

    http://blog.csdn.net/nieweiking/article/details/38417317 RelativeLayout相对布局 相对布局 RelativeLayout 允许子元 ...