Struts2 基本流程(理论化)

<?xml version="1.0" encoding="GBK"?>   
<!DOCTYPE struts PUBLIC    
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    "http://struts.apache.org/dtds/struts-2.0.dtd">   
<struts>   
    <!--   
        package 先不管,以后会讲,目前知道下面那些就够了   
        name 属性任意填,只要不出现重复的就行,该属性必需有   
        extends 属性 目前 记住一定要是"struts-default"这个   
                               该属性必需有   
  
     -->   
    <package name="yufei.hello" extends="struts-default">   
        <!--    
         action 标签里 name属性代表我们要处理的.action的前面部分   
                例如,这里的Login代表Login.action,可以打开项目里的index.jsp   
                看表单的action属性,注意name的值是不带.action,只是前面部分   
         action 标签里 class属性代表我们需要哪个类来处理   
         result 标签的 name属性代表action类的执行方法的返回值,   
                (即外层action标签里class属性那个类的),struts2中   
                action类的默认执行方法是public String execute()   
                action类的执行方法一定要是public String 和 无参数   
                标签对中的属性代表,当execute方法返回的字符串和name里的   
                相同时就跳转到相应那页去,斜杠(/)是必需的   
         -->   
        <action name="Login" class="yufei.hello.HelloAction">   
            <result name="error">/error.jsp</result>   
            <result name="success">/welcome.jsp</result>   
        </action>   
    </package>   
</struts>  

 

关于Struts2 基本流程 比较理论化的说明放下面

--FilterDispatcher 是 Struts 2 框架的核心控制器,该控制器作为一个 Filter 运行在 Web应用中,它负责拦截所有的用户请求(拦截所有还是部分是由url-pattern来决定的),当用户请求到达时,该 Filter 会过滤用户请求。如果用户请求以 action 结尾,该请求将被转入 Struts 2 框架处理。
--Struts 2 框架获得了*.action 请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于 login.action 请求,Struts 2调用名为 login 的 Action来处理该请求。
--Struts 2 应用中的 Action都被定义在 struts.xml 文件中,在该文件中定义 Action 时,定义了该 Action 的name 属性和 class 属性,其中 name 属性决定了该 Action 处理哪个用户请求,而 class属性决定了该 Action 的实现类。
--Struts 2 用于处理用户请求的 Action实例,并不是用户实现的业务控制器,而是 Action代理——因为用户实现的业务控制器并没有和 Servlet API耦合,显然无法处理用户请求。而 Struts 2 框架提供了系列拦截器,该系列拦截器负责将 HttpServletRequest 请求中的请求参数解析出来,传入到 Action 中,并回调 Action 的 execute方法来处理用户请求。
--显然,上面的处理过程是典型的 AOP(面向切面编程)处理方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值