j2ee之struts2拦截器()

struts2的基本配置以及jar包的导入就不说了只写关键部分:

<struts>
    <package name="userPackage" extends="struts-default">
<interceptors>
      <!-- 自己写的一个拦截器 -->
<interceptor name="loginCheck" class="com.xinzhi.interceptor.MyInterceptor"></interceptor> <interceptor-stack name="login_interceptor"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="loginCheck"></interceptor-ref> </interceptor-stack> </interceptors>
<action name="user_*" class="com.xinzhi.action.UserAction" method="{1}" >
       <!-- 执行拦截器,写在action外面是拦截所有资源,写在里面是针对action内部资源进行拦截 --> <interceptor-ref name="login_interceptor"></interceptor-ref>
       <!-- 获取的拦截器返回值及跳转页面 --> <result name="loginDefaulUser">/login.jsp</result>

<result name="loginUser" type="redirectAction">user_list</result> <result name="listUser">/WEB-INF/list.jsp</result> </action> </package> </struts>

自己写的一个拦截器的类要继承AbstractInterceptor

package com.xinzhi.interceptor;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class MyInterceptor extends AbstractInterceptor {

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        ActionContext invocationContext = invocation.getInvocationContext();//拿到ActionContext
        String method = invocation.getProxy().getMethod();//调用代理获取方法名称
        if (!"login".equals(method)) {
            Object object = invocationContext.getSession().get("userInfo");
            if (object != null) {
                return invocation.invoke();//执行方法
            } else {
                return "loginDefaulUser";
            }
        } else {
            return invocation.invoke();
        }

    }

}

 

转载于:https://www.cnblogs.com/ShaoXin/p/7008292.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值