2015-07-20-struts-struts2简介

走成华大道,到二仙桥,练腰马合一

[TOC]

struts 简介

介绍

struts2是在webwork上发展过来的,是mvc模式。 但是推荐使用springmvc作为控制层 ^ _ ^,因为江湖传闻struts漏洞多。

优点

struts2提供了

  • 拦截器,可以进行AOP编程,如实现权限拦截
  • 类型转换器,把特殊的请求参数转化成需要的类型。
  • 多种表现层技术技术,如JSP,freemarker,velocity等
  • 输入校验可以可以对指定方法进行校验
  • 提供了全局范围,包范围,和Action范围的国际化资源文件管理实现。

开发struts2最少需要的jar文件

  • struts2-core-2.x.x.jar, struts2框架的核心类库
  • xwork-2.x.x.jar XWork类库,struts2在其上构建
  • ognl-2.6.x.jar 对象图导航语言,Struts2框架通过其读写对象的属性
  • freemarker-2.3.x.jar Struts的ui标签模板使用freemarkder编写
  • commons-logging-1.1.x.jar, ASF出品的日志包,struts2框架使用这个日志包来支持log4和jdk1.4+的日志记录
  • commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后必须加入此文件

推荐使用maven做包管理

不建议单独下载jar包,推荐直接使用maven来管理包,现在想得到的几个好处:

  • 可以避免包冲突问题,自己弄各个包版本不匹配可能会冲突,有些包天然就冲突,Maven已经帮我们很好的规避了冲突。
  • 可以使得开发时项目比较小,因为依赖包都在maven仓库中
  • 不必再为找包而烦恼

struts2的处理流程

StrutsPrepareAndExecuteFilter是struts2的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求。

  • 拦截用户所有请求,留下用户请求的后缀名为.action或者没有后缀名继续处理,其它的视情况而定(比如获取静态资源等等)
  • 经过拦截器链,有默认的拦截器,我们也可以自定义拦截器添加上去
  • 在经过action,action就是我们主要做业务的地方
  • action处理后会返回一个字符串的返回类型,根据这个字符串在struts.xml中找到对应的视图进行返回

图

struts1和struts2的区别

struts1和servlet,服务器整个生命周期内只会存在一个实例,单例模式

struts2 每次访问都新建一个,原型模式。