JSP中两种模式的总结

运用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中两种模式的总结

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应用开发详解(第三版)

你可能感兴趣的:(jsp)