struts相关的配置文件
1. web.xml
-
配置一个过滤器,作为struts框架的核心入口
-
原来:
- 浏览器发送请求
- 服务器接收请求
- 参考web.xml,找到匹配的servlet
- 调用servlet.service方法。
-
现在:
- 浏览器发送请求
- 服务器接收请求
- 服务器将所有的请求交给struts框架 (struts可以接收服务器请求)
- struts框架参考struts.xml,找到匹配的action
- 调用action.execute方法
2. struts-default.xml
- struts框架的核心配置文件
- 在struts2-core.jar文件中
- 常用见配置标签及其作用 (了解)
- <bean> 配置一些类,在框架启动时创建的对象(框架使用)
- 将来我们可以通过改变<bean>配置,来改装框架。
- <package> 将一些公共的配置打包(集中管理)
- 可以被其他<package extends="...">继承使用。
- <package> -> <interceptor>
- 声明拦截器
- 拦截器是struts的功能核心
- 每一个拦截器对象都有一个相应功能
- struts在请求响应过程中的一些处理功能都是由拦截器对象完成的。
- 常用的拦截器功能如:接收参数,国际化,异常处理,文件上传等。
- 拦截器是aop应用体现(相当于切面对象)
- aop : 面向切面的编程 (横切面编程)
- 特点: 在目标之前或之后,执行一些公用性的功能(如:编码处理,登录认证)
- 优点: 可以动态的增减功能
- 扩展 <interceptor-stack> 拦截器栈 , 拦截器功能的组合
- 默认拦截器栈(19功能),每次经过struts框架的请求都会执行一遍。
- <package> -> <result-type>
- 声明结果类型
- 请求处理之后的结果处理方式(响应方式)
3. default.properties
- struts框架的公共属性
- 在struts2-core.jar/org.apache.struts2包中
- 经常重置的属性:
- struts.i18n.encoding=UTF-8 设置编码字符集。
- struts.multipart.maxSize=2097152 设置上传文件大小的上限
- struts.action.extension=action,, 设置框架处理请求的后缀
/test.action 对
/test 对
/test.do 错
struts.action.extension=action,do,, - struts.enable.DynamicMethodInvocation=false 设置框架是否允许动态方法调用
- struts.configuration.xml.reload=true 设置struts.xml文件每次请求重新加载(开发时使用)
- struts.devMode=false 设置开发者模式
- struts.custom.i18n.resources=testmessages,testmessages2 设置国际化文件名称
- 默认属性重置(修改):
- 方式1: 在struts.xml文件中使用<constant>标签重置属性
<struts>
<constant name="struts.action.extension" value="action,," />
<constant name="struts.configuration.xml.reload" value="true" />
<package name="dmc" extends="struts-default" namespace="/">
<global-results>
<result name="error">error.jsp</result>
</global-results>
<action name="test" class="com.action.TestAction" >
<result name="success" type="redirect">main.jsp</result>
</action>
</package>
<include file="base.xml" />
</struts>
base.xml
<?xml version="1.0"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="dmc2" extends="dmc">
<action name="test2" class="com.action.TestAction" method="t2">
<result name="success" type="dispatcher">main.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>
方式2: 创建src/struts.properties文件,集中修改
struts.action.extension=action,,
4. struts-plugin.xml
- struts框架除了自身提供了许多功能,还提供了许多插件功能(注解编程,json处理,ss整合)
- 这些功能插入框架后,可能会改变框架原有的对象,也可能会增加一些新对象功能
- 这些内容都在struts-plugin.xml文件中配置
5. struts.xml
-
映射配置文件
-
作用是实现请求-响应关系的配置。
-
常用标签:
-
<bean> 改造框架
-
<constant> 重置属性
-
<include> 引入struts的子配置文件
-
<package> 做一些集中的配置,可以通过继承,使用其他package中的功能,也可以被其他package使用
-
<package name="dmc" > 为包命名,可以被其他包继承
-
<package extends="struts-defalt" > 继承其他包(拦截器,结果类型)
-
<package namespace="/user" > 匹配请求路径
localhost:8080/ struts / test.do
localhost:8080/ struts / user / test.do
localhost:8080/ struts / admin / test.do -
<package> --> <action> 配置请求映射关系
-
哪个请求 交给 哪个class类处理
<action name="test" class="com.action.TestAction"> -
test请求,由com.action.TestAction类处理 (隐藏:由execute方法处理)
-
扩展:<action> 除了上述name和class属性外,还有一个常用属性method
<action name="test" class="com.action.TestAction" method="t1"> -
指定此次请求由哪个类的哪个方法处理。
-
<package --> <action> --> <result> 配置响应映射
-
根据请求映射关系,找到处理请求的类和方法
-
该方法可以通过String返回值来指定响应内容和方式
-
处理请求的方法返回一个字符串,假设:"success"
-
字符串与<result name="success">匹配
-
通过<result type="dispatcher">指定响应方式
-
所有的响应方式可以参考struts-defualt.xml/<result-type>
-
通过<result>main.jsp</result> 指定响应的内容
-
<package> -> <interceptors> 自定义拦截器功能。
-
<package> -> <results-type> 自定义响应类型
-
<package> -> <global-results> 设置公共的响应映射
当许多请求都有相同的响应处理,例如:
login.do -> success/error
save.do -> success/error
delete.do -> success/error
<global-results>
<result name="error">error.jsp</result>
</global-results>
public class TestAction {
public String execute(){
System.out.println("-------------------------");
return "error" ;
}
public String t2(){
System.out.println("==========================");
return "error" ;
}
}
网友评论