采用Struts框架技术和直接使用jsp+javabean技术开发各有什么优势?各自的缺点又是什么?

在Javaweb开发领域存在2种开发模式, 模式一,jsp+javabean

模式二,jsp+javabean+servlet,即所谓的MVC设计,struts只不过是遵循MVC的一个开源框架.

在模式一中(jsp+javabean),这种设计模式适合,小规模web开发,体现在轻巧兴,也就是更轻量级一些(内存加载的类少,相对struts而言),但是jsp中会嵌入大量的html和Java脚本,规模小还好,如果大型企业web,随着规模的加大,太多的html和java脚本交织在一起,可读性差,而且修改一个jsp可能会牵连到其他的页面. 现在大规模的企业开发都选择struts,因为他成功的吧web分为三层,即模型,视图,控制器,在开发团队中更容易分工,而且逻辑部分和显示部分被分离到,module和jsp中去了,可读性也好了,但是struts在启动的时候要加载一些额外的类(struts的类),这对于小型企业用的低端服务器来说,会站内存,降低速度.

所以,本人在开发中得到的总结是小规模开发用jsp+javabean,大规模的用struts。

一.JSP和JavaBean模型

模型的结构如下图所示,称之为JSP和JavaBean模型。其工作原理是:当浏览器发出请求时,JSP接收请求并访问JavaBean。若需要访问数据库或后台服务器,则通过JavaBean连接数据库或后台服务器,执行相应的处理。JavaBean将处理的结果数据交给JSP。JSP提取结果并重新组织后,动态生成HTML页面,返回给浏览器。用户从浏览器显示的页面中得到交互的结果。

JSP和JavaBean模型充分利用了JSP技术易于开发动态网页的特点,页面显示层的任务由JSP(但它也含事物逻辑层的内容)承担,JavaBean主要负责事务逻辑层和数据层的工作。JSP和JavaBean模型依靠几个JavaBean组件实现具体的应用功能,生成动态内容,起最大的特点就是简单。

二.JSP和JavaBean+Servlet模型

JSP和JavaBean+Servlet模型的体系结构如下图所示,称之为JSP和JavaBean和Servlet模型。它是一种采用基于模型视图控制器(Model和View和Controller)的设计模型,即MVC模型。该模型将JSP程序的功能分为3个层次:Model(模型)层、View(视图)层、Controller(控制器层)。Model层实现业务逻辑,包括了Web应用程序功能的核心,负责存储与应用程序相关的数据;View层用于用户界面的显示,它可以访问Model层的数据,但不能更改这些数据;Controller层主要负责Model和View层之间的控制关系。

具体实现时,JavaBean作为模型层,Servlet作为控制层,JSP作为视图层。每层的作用如下:

1.JavaBean作为Model层,实现各个具体的应用逻辑和功能。

2.Servlet作为Controller层,负责处理HTTP请求,包括:

◆对输入数据的检查和转换。

◆通过JavaBean访问数据库。

◆初始化JSP页面中要用到的JavaBean或对象。

◆根据处理中不同的分支和结果,决定转向那个JSP等。

3.JSP作为View层,负责生成交互后返回的界面。它主要通过信息共享,获取Servlet生成的对象或JavaBean,从中取出数据,插入到HTML页面中。

该模型的工作原理是:所有的请求都被发送给作为控制器的Servlet。Servlet接收请求,并根据请求信息将它们分发给相应的JSP页面来响应;同时Servlet还根据JSP的需求生成相应的JavaBean对象并传输给JSP。JSP通过直接调用方法或利用UseBean的自定义标签,得到 JavaBean中的数据。

这种设计模式通过Servlet和JavaBean的合作来实现交互处理,很好的实现了表示层、事务逻辑层和数据的分离。

三.两种模型的比较

从以上对两种模型的说明来看,JSP和JavaBean模型和JSP和

JavaBean+Servlet模型的整体结构都比较清晰,易于实现。它们的基本思想都是实现表示层、事务逻辑层和数据层的分离。这样的分层设计便于系统的维护和修改。两种模型的主要区别表现在:

1.处理流程的主控部分不同。JSP和JavaBean模型利用JSP作为主控部分,将用户的请求、JavaBean和响应有效的链接起来。JSP和JavaBean+Servlet模型利用Servlet作为主控部分,将用户的请求、JavaBean和响应有效的链接起来。

2.实现表示层、事务逻辑层和数据层的分离程度不同。JSP和JavaBean+Servlet模型比JSP和JavaBean模型有更好的分离效果。当事务逻辑比较复杂、分支较多或需要涉及多个JavaBean组件时,JSP和JavaBean模型常常会导致JSP文件中嵌入大量的脚本或Java代码。特别是大型项目开发中,由于页面设计和逻辑处理分别由不同的专业人员承担,如果JSP 有相当一部分处理逻辑和页面描述混在一起,这就有可能引起分工不明确,不利于两个部分的独立开发和维护,影响项目的施工和管理。在JSP和JavaBean+Servlet模型中,由 Servlet处理HTTP请求,JavaBean承担事务逻辑处理,JSP仅负责生成网页的工作,所以表现层的混合问题比较轻,适合于不同专业的专业人员独立开发Web项目中的各层功能。

3.适应于动态交互处理的需求不同。当事务逻辑比较负责、分支较多或需要涉及很多JavaBean组件时,由于JSP和JavaBean+Servlet模型比JSP和JavaBean模型有更清晰的页面表现、更明确的开发模块的划分,所以使用JSP和JavaBean+Servlet模型比较适合。然而,JSP和JavaBean+Servlet模型需要编写Servlet程序,Servlet程序需要的工具是Java集成开发环境,编程工作量比较大。对于简单的交互处理,利用JSP和JavaBean模型,JSP主要是使用HTML工具开发,然后再插入少量的Java代码就可以实现动态交互。在这种情况下,使用JSP和JavaBean模型更加方便快捷。

JSP和JavaBean模型和JSP和JavaBean+Servlet模型这两种用于开发Web应用的方法都有很好的使用性。当然,实现动态交互的Web应用,不限于这两种模型。在实际Web应用的开发过程中,需要根据系统特点、客户需求及处理逻辑的特性,选择合适的模型,力求使整个应用的体系结果更加合理,从而实现不同的交互处理。

java和jsp交互 structs_Struts与jsp+javabean+servlet区别相关推荐

  1. python和jsp交互_Servlet与JSP进阶

    ContentType的作用: 请求转发与响应重定向的使用: 多个Servlet(JSP) 之间跳转有两种方式: request.getRequestDispatcher().forward() - ...

  2. jsp访问java方法_JSP基础知识之访问JavaBean的方法

    JSP 对 JavaBean 的支持使您能通过 Web 站点重复使用组件.JavaBean 可以是类文件或串行化 Bean,也可由 Servlet 动态生成.请使用 标记来创建一个 Bean 实例,以 ...

  3. java web编写计算器_javaWeb 使用 jsp 和 javaBean 实现计算器功能

    jsp 和 javaBean 实现计算器功能 try { calculator.calculate(); } catch (Exception e) { out.write(e.getMessage( ...

  4. java servlet jsp javabean关系图,一个关于javaBean+servlet+jsp的MVC架构有关问题

    当前位置:我的异常网» Java Web开发 » 一个关于javaBean+servlet+jsp的MVC架构有关问题 一个关于javaBean+servlet+jsp的MVC架构有关问题 www.m ...

  5. java list 赋值jsp,在Struts中使用JavaBean和List(多行数据)类型属性-JSP教程,Java技巧及代码...

    在 strust 中,我们可能经常要在 actionform 中使用其他 javabean 作为属性类型,这里就存在着如何使用好这些属性与 html form 之间的数据交换,下面我们就这些问题做一讲 ...

  6. JSP+JavaBean+Servlet技术(MVC模型)

    一,Servlet开发 用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这 ...

  7. 【Java学习路线之JavaWeb】JSP教程

    文章目录 为什么要学习JSP? 读者 阅读条件 JSP到底是什么 JSP的由来 Servlet与JSP异同点 JSP相对于Servlet的优点 1)易于维护 2)快速开发:无需重新编译和部署 3)代码 ...

  8. JSP对象,JavaBean,Servlet简易教程

    第一部分:jsp内置对象 1. request对象.application对象的综合应用,做一个简易的留言板:多个人多时打开网站,发表留言后,可以看到大家共同的留言列表: 网站首页index.jsp, ...

  9. JSP JavaBean Servlet 的介绍(转)

    在JSP中调用JAVA类和使用JavaBean有什么区别? http://blog.sina.com.cn/s/blog_71c1942e01013gsb.html 可以像使用一般的类一样使用Java ...

最新文章

  1. Tensorflow【实战Google深度学习框架】TFLearn大宝剑
  2. 【Python学习系列八】Python实现线性可分SVM(支持向量机)
  3. 【cmd】日期、时间格式化
  4. linux-压缩和解压类
  5. 用计算机表白我不喜欢你了,隐藏式表白,表白不一定要用“我喜欢你”这几个字...
  6. python 线程超时设置_爬虫基础知识(一)多线程与threading模块
  7. Flutter进阶—实现动画效果(十)
  8. 全网首发:为什么解码器长时间没有画面?如何解决?
  9. 凸优化第二章凸集 2.1仿射集合和凸集
  10. 小程序学习笔记(2)-简单的小例子了解小程序的语法
  11. DockerKubernetes ❀ Kubernetes集群 - DashBoard服务(Web管理)安装部署
  12. 小型计算器的实现——Java GUI图形界面设计案例
  13. 前嗅教你大数据——史上最全代理IP服务商对比
  14. python绘制世界人口地图
  15. 2020移动apn接入点哪个快_手机资讯:5G 网络和现在 iPhone 使用的 Wi-Fi 有什么区别速度会更快吗...
  16. 【计算方法】线性方程组的数值解法
  17. 张量、向量、标量的区别
  18. “三次握手,四次挥手”这么讲,保证你忘不了
  19. 事件循环(Event Loop)相关概念 及 面试题
  20. 计算圆柱的面积和体积

热门文章

  1. No SOURCES given to target: mpeg
  2. linux移植win项目找不到pthread.h
  3. [Android6.0][RK3399] PCIe 接口 4G模块 EC20 调试记录
  4. Android开发之AudioManager(音频管理器)详解
  5. Bluetooth---如何使用Android蓝牙开发
  6. 阿里云服务器如何快速搭建Docker环境
  7. python sorted下标_初学者掌握python 列表需要知道的操作
  8. 一文包教会 Python打包.py文件成exe文件发给自己的好友
  9. python int函数的实现_python实现int函数的案例分析
  10. 灯效控制器和rgb控制器_还有什么不能RGB?TT发布Level 20 RGB BattleStation电竞桌