关于Struts2框架的学习(二)

来源:互联网 发布:淘宝旺旺id是什么 编辑:程序博客网 时间:2024/06/07 14:41

一、strtus2的执行流程:

1.当用户提交一个请求,由服务器接收,并且交给struts2的核心过滤器来处理,strtus2的过滤器调用strtus2的一系列处理器来处理(如:解析strtus.xml配置文件,和用户提交的请求进行对比,如果找不到返回404,如果找到则进行下一步处理),直到调用对应的Action类中的execute方法执行,执行完后在进行一系列处理到核心过滤器。由核心过滤器返回给服务器,服务器对浏览器进行响应。

一个具体的流程图:


二、strtus2的线程安全问题:

1.线程安全:在一个进程中有多个线程并发执行,每个线程执行过程中变量值是相同的,执行结果也是相同的。

2.strtus2的线程是安全的:每次请求都会创建新的action对象。由于acton对象是strtus2反射生成的,所以要求Action类要有一个公共的无参的构造方法

三、有关配置文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"        "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <!--常量配置constant-->    <!--乱码解决-->    <constant name="struts.i18n.encoding" value="UTF-8"/>    <!--设置自定义扩展名-->    <constant name="struts.action.extension" value="action,,"/>    <!--设置开发模式-->    <constant name="struts.devMode" value="true"/>    <!--自动装载-->    <constant name="struts.configuration.xml.reload" value="true"/>    <!--       第二种方式配置常量,在src下新建一个strtus.properties的配置文件也可以;    -->    <!--团队开发的常量设置,通过include添加不同人员的配置文件-->    <include file="config/strtus/user.xml"/>    <!--    name:名称自定义,可以配置多个包    extends必须写,直接或间接继承struts-default name自定义    namespace:命名空间,不同模块可以指定不同的空间    -->    <package name="hello" namespace="/" extends="struts-default">        <!-- name请求名称,不要写 /; class对应action完全限定名-->        <action name="hello" class="com.yaoyao.HelloAction">            <!-- 结果集 name和对应action的方法的返回值匹配,默认是success -->            <result>/index.jsp</result>        </action>    </package></struts>

今天主要学习一下strtus2的运行流程以及他的一些配置文件的用法,当然还不是很全面,明天继续!!!!大笑





0 0
原创粉丝点击