zoukankan      html  css  js  c++  java
  • 自定义拦截器

     1 package com.cn.interceptors;
     2 
     3 import javax.servlet.http.HttpSession;
     4 
     5 import org.apache.struts2.ServletActionContext;
     6 
     7 import com.cn.domain.User;
     8 import com.opensymphony.xwork2.ActionInvocation;
     9 import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
    10 //执行动作方法前检查用户是否已经登录
    11 public class SessionCheckInterceptors extends MethodFilterInterceptor{
    12 
    13     @Override
    14     protected String doIntercept(ActionInvocation invocation) throws Exception {
    15         String result = "login";//对应的就是一个结果(即action的结果配置:<result name="login">/login.jsp</result>)
    16         HttpSession session = ServletActionContext.getRequest().getSession();
    17         User user = (User)session.getAttribute("user");
    18         if(user!=null)
    19             result = invocation.invoke();
    20         return result;
    21     }
    22     
    23 }

    在Struts配置文件中进行配置:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <constant name="struts.devMode" value="true"></constant>
        
        <package name="mypackage" extends="struts-default" abstract="true">
            <interceptors>
                <interceptor name="sessionCheck" class="com.cn.interceptors.SessionCheckInterceptors">
                    <!-- 说明test2动作方法不需要拦截(这里是指action的method方法) -->
                    <param name="excludeMethods">test2</param>
                </interceptor>
                <interceptor-stack name="myDefaultStack">
                    <interceptor-ref name="defaultStack"></interceptor-ref>
                    <interceptor-ref name="sessionCheck"></interceptor-ref>
                </interceptor-stack>
            </interceptors>
            <default-interceptor-ref name="myDefaultStack"></default-interceptor-ref>
        </package>
        
        <package name="p1" extends="mypackage">
            <action name="test1" class="com.cn.action.HelloAction1" method="test1">
                <result>/1.jsp</result>
                <result name="login">/login.jsp</result>
            </action>
            <action name="test2" class="com.cn.action.HelloAction1" method="test2">
                <result>/2.jsp</result>
            </action>
        </package>
    </struts>
  • 相关阅读:
    sell学习
    redis安装
    [Yii Framework] Share the session with memcache in Yii
    CentOS 网络设置修改
    虚拟机的几种网络方式详解
    linux命令小技巧
    交叉编译: 常见参数配置
    Extend volumn in ubuntu 14.04
    OpenCV 2.4.13 installed in Ubuntu 14 and CMakeLists Demo
    CMake: Cross-Platform Compling
  • 原文地址:https://www.cnblogs.com/lzy1991/p/5348594.html
Copyright © 2011-2022 走看看