文档章节

Struts 简单小结

白志华
 白志华
发布于 2015/10/18 10:57
字数 770
阅读 37
收藏 0

精选30+云产品,助力企业轻松上云!>>>

      Struts是一个基于MVC的开源框架,具有组件的模块化、灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。


      struts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。struts提供的类使得开发工作更加简单,这些类包括:控制程序流程的类、实现和执行程序事务逻辑的类、自定义的标记库使得创建和验证HTML表单更加容易。


      下面是我初步学习了Struts以后,简单勾勒的一张知识点的罗列图。


点击查看可折叠的原导图


      每个事物的存在必有其存在的意义,同时也有优缺点。具体来讲,

Struts的优点有: 

  • 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 

  • 有丰富的tag可以用 Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率。

  • 页面导航,会使得系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。 

  • 提供Exception处理机制 

  • 支持I18N 

    缺点: 
  • 页面导航受限于forward
          转到展示层时,需要配置forward,每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的系统,这样的操作简单不可想象。现在就是这样,几十上百个人同时在线使用系统时,大家可以想象一下,重启服务器将意味着什么。

  • Struts的Action必需是thread-safe方式
          它仅仅允许一个实例去处理所有的请求。所以action用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。

  • 测试不方便
          Struts的每个Action都同Web层耦合在一起,这样它的测试依赖于Web容器,单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。

  • 对事件支持不够
          在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为application event。它与component event相比是一种粗粒度的事件。

版权声明:本文为博主原创文章,未经博主允许不得转载。

白志华
粉丝 34
博文 265
码字总数 57524
作品 0
长沙
程序员
私信 提问
加载中
请先登录后再评论。
Struts2知识点小结(一)

一、struts2简介   1、Struts2是一个基于MVC设计模式的Web应用框架 只要是web层框架 一般就会遵守MVC设计模式 2、struts2与struts1的关系? 没关系 WebWork基于xwork 3、struts2是一个可插拔...

it~沃克尔
2018/08/08
0
0
Struts秘籍之起式:第1.3式:迁移至Struts 1.1 

第1.3式. 从Struts 1.0迁移至Struts 1.1 问题 你需要将一个基于Struts 1.0的应用迁移到Struts 1.1. 动作分解 使用Struts1.1中对应的文件替换Struts 1.0 JAR 文件、标签库描述符(TLD) 文件、以...

MoroseYu
2012/03/27
19
0
Struts 1.x 的学习

可能很多学java web的学僧看到struts 1.x 的章节就直接跳过了,因为这东东"基本没人用"了。我觉得如果不是为了急功近利现学现卖的做网站或者本科生项目和课程设计,struts 1.x 其实也应该抽时...

天地一MADAO_
2014/04/15
81
2
Struts 2(三):示例→基于Struts 2的用户注册模块

示例→基于Struts2的用户注册模块 1.用户注册模块需求描述   在用户注册页面中填写用户信息,包括用户名、用户密码、确认密码、姓名等信息,填写完成后提交注册表单给Struts 2的业务控制器...

osc_xbmy69c2
2019/03/14
7
0
Struts1和Struts2的区别

望崖
03/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

iOS14新特性探索之二:App Widget小组件应用

iOS14新特性探索之二:App Widget小组件应用 iOS 14除了引入了亮眼的App Clips功能外。还有一个也非常惹争议的功能就是App Widget。App Widget可以理解为小组件,在非常早的Android版本中就有...

珲少
19分钟前
19
0
科目二笔记

窄路掉头 行至肩膀与白线平行,向左打到底,等待车行进入窄路。待车与路程45°时,回半圈,继续前行待车与边线平行后回正。然后继续行至车盖压住前面的线后向左打到底,伸出头看前轮与边线距...

bug0day
28分钟前
6
0
Java基础系列——数组相关算法(11)

这里介绍一下数组中的常用算法 杨辉三角形 杨辉三角:它的两个边都是1,内部其它都是肩上两个数的和。 public class YangHui { public static void main(String[] args) { ...

卢佳鹏
28分钟前
23
0
thinkphp-nginx.conf

server{ listen 80; server_name test.cn; index index.php; root /data/wwwroot/test_tp5/public; include thinkphp.conf; location ~ [^/]\.php(/|$) ......

mind-blowing
30分钟前
9
0
Mysql死锁处理

1、错误信息 在mysql客户端执行update语句报错信息:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction下面是在程序里面看到的错误信息com.mysql.cj.jdbc.ex...

简到珍
33分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部