美文网首页
struts配置文件解析

struts配置文件解析

作者: _FireFly_ | 来源:发表于2020-12-04 09:35 被阅读0次

    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" ;
        }
    }       
    

    相关文章

      网友评论

          本文标题:struts配置文件解析

          本文链接:https://www.haomeiwen.com/subject/fkjbwktx.html