关于struts2的学习心得
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于struts2的学习心得相关的知识,希望对你有一定的参考价值。
一、什么是struts2?
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
二、struts2的工作流程
工作流程:
(1)客户端浏览器发送HTTP请求到Web应用
(2)Web容器将请求传递到标准ActionContextCleanUp过滤器以消除属性,而不让后续过滤器清楚,以延长Action中属性(包括自定义属性)的生命周期。
(3)再经过如stimesh等其他过滤器后,请求传递给StrutsPrepareAndExecuteFilter核心控制器
(4)StrutsPrepareAndExecuteFilter调用ActionMapper(Action映射器)确定调用哪个Action,再将控制权转移给ActionProxy代理
(5)ActionProxy代理调用配置管理器ConfigurationManager从配置文件struts.xml中读取配置信息,然后创建ActionInvocation对象
(6)ActionInvocation在调用拦截器链中的拦截器后再调用Action,根据Action返回的结果字符串查找对应的Result
(7)Result调用视图模板,再以相反的顺序执行拦截器链,返回HTTP响应
(8)HTTP响应以相反的顺序返回给核心控制器StrutsPrepareAndExecuteFilter以及其他web.xml中定义的过滤器,最终返回给客户端
三、struts2基本配置
(1)由于框架的整合需要借助web.xml文件,而StrutsPrepareAndExecuteFilter本身只是一个过滤器,所以需要在web.xml中用< filter>以及< filter-mapping>进行配置。
<!-- 初始化Spring容器 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/configs/applicationContext.xml</param-value> </context-param> <!-- 配置struts过滤器,接管所有的请求 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
(2)在config配置struts.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <!-- 常量配置 --> <!-- 开发模式打开 --> <constant name="struts.devMode" value="true" /> <!-- 声明action对象的管理交给spring容器 --> <constant name="struts.objectFactory" value="spring" /> <!-- 通过Action的限制得到结果页面路径 --> <constant name="struts.convention.result.path" value="/WEB-INF/jsps/" /> <!-- action配置:包,命名空间,action,result等等 --> <package name="zidingyide" extends="struts-default" namespace="/"> <!-- name表示请求的url:/rams/user_* --> <!-- class表示请求的处理action对象 --> <!-- method表示处理请求的方法名,{1}与name中第一次出现的通配符关联 --> <action name="user_*" class="userAction" method="{1}"> <!-- result表示响应的结果,此处响应webapp根目录下面的index.jsp页面 --> <result name="success">WEB-INF/jsps/result.jsp</result> </action> </package> </struts>
以上是关于关于struts2的学习心得的主要内容,如果未能解决你的问题,请参考以下文章