• 自定义拦截器


     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>
  • 相关阅读:
    uglifyjs2压缩混淆js文件
    Html5应用程序缓存ApplicationCache
    nginx搭建笔记
    Free git private repo
    编程哲学之 C# 篇:007——如何创造万物
    编程哲学之 C# 篇:003——为什么选择 C#
    编程哲学之 C# 篇:004——安装 Visual Studio
    编程哲学之 C# 篇:006——什么是 .NET
    编程哲学之 C# 篇:005——"Hello,World!"
    为什么要使用Entity Framework
  • 原文地址:https://www.cnblogs.com/lzy1991/p/5348594.html
Copyright © 2020-2023  润新知