struts2配置详解(1)
来源:互联网 发布:知乎日报接口 编辑:程序博客网 时间:2024/05/20 21:59
参考《Struts 2完全学习手册》
参考Struts2的系统架构:http://www.cnblogs.com/ningvsban/p/3733931.html
》struts2通过StrutsPrepareAndExecuteFilter运行,public class StrutsPrepareAndExecuteFilter implements StrutsStatics, Filter。filter是一个加强版servlet,1、struts2框架配置文件
web.xml-------------filterDispatcher
struts.xml-----------Struts启动时自动加载struts-2.0.dtd--------文档类型定义
struts-default.xml-----Struts启动时自动加载还是因为struts.xml的default package设置才被加载??
----------------根据struts.configuration.files缺省指定的默认加载的配置文件,struts-default.xml,struts-plugin.xml和struts.xml是Struts启动时自动加载的。
struts.properties-----定义属性值和常量,覆盖struts.xml中定义的相同属性值和常量。Struts启动时自动加载。
-------------struts.configuration.files,struts.custom.i18n.resources和struts.i18n.reload都可以在这里定义。
--------struts直接引入了许多spring的IOC技术(类),struts.properties中也可以重写指定。
struts-plugin.xml-----插件的配置文件,一般在插件的jar包中解压可以发现。与这些插件集成时,系统自动加载。
静态内容---------JS、CSS和FreeMarker模板文件等,由FilterDispatcher过滤器自动提供,任何以“/struts/”开始的请求都认为是静态内容,“/struts/”后面的内容将被映射到struts2的核心内裤中的公共包中。
------FilterDispatcher过滤器的参数package可以指定附加的包。默认情况,struts2框架可以自动搜索模板包template和org.apache.struts2.static包。
struts.xml配置详解
管理元素
1、Bean配置<bean>
在struts.xml中使用<bean>配置Bean,通常有以下两个作用
2、常量配置constant
加载顺序:struts-default.xml-------struts-plugin.xml--------struts.xml(推荐)--------struts.properties----------web.xml
web.xml中使用FilterDispatcher的子元素<init-param>来实现。
3、包配置package
疑问:拦截器定义在action之前,表示在action执行之前拦截,之后这些拦截器还会再次拦截吗?还是需要在action定义之后再定义一些拦截器?倾向后者。
拦截器的使用是不是和filter类似?
4、命名空间namespace
不指定namespace,则使用默认命名空间。默认命名空间是“”空字符。
5、包含配置<include>
类似于<jsp:include>。不过这里的<include>只能包含配置文件。
用户请求处理元素
1、拦截器配置
2、Action业务逻辑控制器
2.1 Action接口。
我们自己定义的action一般都extends ActionSupport,重写某些继承方法,如execute();
2.2 间接访问Servlet API
很重要。
struts2中,通过ActionProxy将Servlet(JSP页面)和Action联系起来。
我们知道每一个请求都会得到独有的Action实例。那么某action实例得到的ActionContext,通过ThreadLocal从获得session等。
》ActionContext中static ThreadLocal actionContext = new ThreadLocal();
2.3 直接访问Servlet API
分为IOC和非IOC两种方式。
------推荐直接访问非IOC方式。
2.4 Action配置
使用action的method属性也能达到相同的效果,但要给类的每个执行方法单独配置<action>,很占空间。
从这里可以轻松看出,<action>构造了实例对象,多实例,属于各个请求独有(可看做ThreadLocal-Request的局部变量)。
<action>如果被2个请求同时访问,即同时执行,则应该产生2个实例对象。(实际中,同一个客户端不能同时发出的2个请求访问,一定有先后。PS. form 的action对应<action>的name)
注意:<jsp:useBean>的id属性则是实例对象的名称,等同于jsp脚本<%%>中java创建对象,<%%>中是局部变量。
- struts2配置详解(1)
- struts2总结---XML配置详解 (1)
- Struts2(一)Struts2配置详解
- Struts2(一)Struts2配置详解
- struts2配置详解(2)
- struts2配置详解(struts.xml配置详解)
- 【SSH2(理论篇)】--Struts2配置详解
- 【SSH2(理论篇)】--Struts2配置详解
- Struts2配置(struts.xml)详解
- 【SSH2(理论篇)】--Struts2配置详解
- 【SSH2(理论篇)】--Struts2配置详解
- struts2 properties配置详解
- struts2 properties配置详解
- Struts2 XML配置详解
- struts2.2.1配置详解
- Struts2配置详解
- Struts2 Result配置详解
- struts2常量配置详解
- Wireless Access Point
- Asp.net MVC3 JQuery EasyUI DEMO
- 图像内插-最近邻内插法
- 记下第一次测评。。脑残了!
- 应用struts2标签常见的问题
- struts2配置详解(1)
- SilkTest天龙八部系列1-初始化和构造函数
- 托盘图标
- 部分常用的快捷键
- 黑马程序员----------Java新特性反射 泛型
- SilkTest天龙八部系列2-OCR
- Android内存管理(Memory Management), OutOfMemoryError Note
- SilkTest天龙八部系列3-动态父窗口
- ABAP 表格控制(Table Control)和 步循环(STEP-LOOP)