配置及流程
1. Web.xml中配置
<!-- struts2的核心过滤器 前端控制器 作用:接管请求。将请求交给struts2来处理。 配置时保证请求被struts2接管 不同版本的核心过滤器不一样。2.1以前是org.apache.struts2.dispatcher.FilterDispatcher 2.1以后org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
2. struts.xml配置文件,该配置文件位于src下,文件名不能被更改。
<struts> <!-- constant 常量配置 struts.devMode 设置是否是开发模式 --> <constant name="struts.devMode" value="true" /> <!-- 设置编码 --> <constant name="struts.i18n.encoding" value="utf-8"/> <!-- 设置action的扩展名 --> <constant name="struts.action.extension" value="action,,do"/> <!-- package表示一个包每个包下可以配置多个action 包的作用主要用来区分不同模块的配置 不同模块配置在不同的包下 name 是包名 在项目下唯一 通常使用模块名做为包名 extends 表示继承 必须直接或者间接继承struts-default namespace 表示命名空间 命名空间和请求名直接相关 请求名=项目发布路径名+namespace名+action名 namespace名称通常也和模块名相关 --> <package name="default" extends="struts-default" namespace="/user"> <!-- action 配置请求名 一个action表示对一个请求的处理 name在同一个包下唯一 会作为请求名称 该名称会自动将请求的扩展名去掉,所以不用配置扩展名 class 配置处理请求的类的完全限定名=包名+类名。如果不配置class默认由 com.opensymphony.xwork2.ActionSupport来处理。 method 配置处理方法的名称 默认由execute方法处理 在struts2中处理方法 必须是 public的,返回值必须是String。 --> <action name="hello" class="cn.sxt.action.HelloAction" method="hello"> <!-- result配置的结果集处理 每个action中可以及配置多个result name表示结果集名称 和处理方法的返回值进行匹配 默认是success; type表示结果集类型 dispatcher 转发-默认 redirect 重定向 redirectAction 重定向到另外一个action stream 流 chain 表示action链 result中填写要跳转的页面的路径 --> <result name="success" type="dispatcher">/index.jsp</result> </action> </package> <!-- include用于添加其他配置文件,在团队开发中使用 不同模块一般使用不同的配置文件,在总的配置文件中加入即可 --> <include file="user.xml"></include> </struts> |
3. struts2的执行流程:
浏览器发起请求-------->服务器接收并处理请求-------->项目的web.xml中匹配过滤器-------->匹配是否有对应的action-------->生成对应的action的对象-------->调用action对象的处理方法-------->返回结果
4. 执行流程图:
5. 详细的流程图: