5.3号学习日志(1)

1. 那么登录验证拦截器将会对除了welcomelogin之外的所有方法进行拦截了

<interceptors> -- 登录验证拦截器

<interceptor name=”authority” class=”com.authorityInterceptor”/>

<interceptor-stack name=”boloStack”> --将登录验证拦截器加入默认拦截器栈中

<interceptor-ref name=”authority”>

<param name=excludeMethods>welcome,login</param>

</interceptor-ref>

<interceptor-ref name=”paramParamsStrack”/>

</interceptor-stack>

</interceptors>

2. 拦截器里面的return Action.LOGIN 这句话,当程序执行完这一行后,就会到struts.xml文件中去找name为login全局转向配置。

3. 注意两个interceptor-ref的顺序,顺序不同,执行效果也不同:先配置的先执行/后配置的先退出(先进后出)

4. struts2拦截器interceptor的三种配置方法
方法1. 普通配置法

<struts> 
    <package name="struts2" extends="struts-default"> 
        <interceptors> 
            <interceptor name="myInterceptor" class="edu.hust.interceptor.MyInterceptor"></interceptor> 
        </interceptors>

        <action name="register" class="edu.hust.action.RegisterAction"> 
            <result name="input">/register.jsp</result> 
            <result>/result.jsp</result> 
            <!-- 在自定义interceptor并将其ref,系统会覆盖掉默认的interceptor-stack(defaultStack),为了保证系统默认的defaultStack不受印象,我们需要显式的将其引入 --> 
            <!-- 注意两个interceptor-ref的顺序,顺序不同,执行效果也不同:先配置的先执行/后配置的先退出(先进后出) --> 
            <interceptor-ref name="defaultStack"></interceptor-ref> 
            <interceptor-ref name="myInterceptor"></interceptor-ref> 
        </action> 
    </package> 
</struts>
方法2. 配置拦截器栈(即将多个interceptor串联的一种元素)。然后在<action>中引入该拦截器栈就可以了。

<struts> 
    <package name="struts2" extends="struts-default"> 
        <interceptors> 
            <interceptor name="myInterceptor" class="edu.hust.interceptor.MyInterceptor"></interceptor> 
            <interceptor-stack name="myInterceptorStack"> 
                <interceptor-ref name="myInterceptor"></interceptor-ref> 
                <interceptor-ref name="defaultStack"></interceptor-ref> 
            </interceptor-stack> 
        </interceptors> 
        <action name="register" class="edu.hust.action.RegisterAction"> 
            <result name="input">/register.jsp</result> 
            <result>/result.jsp</result> 
            <interceptor-ref name="myInterceptorStack"></interceptor-ref> 
        </action> 
    </package> 
</struts>
方法3. 修改默认拦截器,将自定义的拦截器栈定义为struts2的默认拦截器。

<struts> 
    <package name="struts2" extends="struts-default"> 
        <interceptors> 
            <interceptor name="myInterceptor" class="edu.hust.interceptor.MyInterceptor"></interceptor> 
            <interceptor-stack name="myInterceptorStack"> 
                <interceptor-ref name="myInterceptor"></interceptor-ref> 
                <interceptor-ref name="defaultStack"></interceptor-ref> 
            </interceptor-stack> 
        </interceptors>

        <!-- 此默认interceptor是针对所有action的 --> 
        <!-- 如果某个action中引入了interceptor,则在这个action中此默认interceptor就会失效--> 
        <default-interceptor-ref name="myInterceptorStack"></default-interceptor-ref> 
        <action name="register" class="edu.hust.action.RegisterAction"> 
            <result name="input">/register.jsp</result> 
            <result>/result.jsp</result> 
        </action>
    </package> 
</struts>

5. <!-- myInterceptor3拦截器只对RegisterAction中的queryAll()方法和insert()方法进行了拦截,其他方法未进行拦截 -->

            <interceptor-ref name="myInterceptor3">

                <param name="includeMethods">queryAll, insert</param>

            </interceptor-ref>

6. EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从PageRequestSessionApplication范围查找。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值