码迷,mamicode.com
首页 > 其他好文 > 详细

关于struts2的学习心得(一)

时间:2017-11-16 23:55:19      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:value   开发模式   package   time   ack   过滤器   XML   mode   app   

一、什么是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的学习心得(一)

标签:value   开发模式   package   time   ack   过滤器   XML   mode   app   

原文地址:http://www.cnblogs.com/sunxiaoming/p/7846723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!