zoukankan      html  css  js  c++  java
  • struts2之登陆拦截

    针对登录拦截功能,我们需要设置拦截哪些方法和不拦截哪些方法

    action

    action类中,处理登录时,将用户、密码绑定到session

    ActionContext ac = ActionContext.getContext();
    Map<String, Object> session1 = ac.getSession();
    session1.put("u", user);

    LoginIntercrptor.java

    public class LoginIntercrptor extends MethodFilterInterceptor{

    @Override
    protected String doIntercept(ActionInvocation ai) throws Exception {
    // TODO Auto-generated method stub
    ActionContext actionContext = ActionContext.getContext();
    Map<String, Object> session = actionContext.getSession();
    User s = (User) session.get("u");
    System.err.println("s"+s);
    if (s==null) {
    return "relogin";
    } else {
    return ai.invoke();
    }

    }

    }

    struts.xml

    在struts.xml文件中配置方法拦截器
    设置拦截的方法
    <param name="includeMethods"></param>
    或者设置不拦截的方法(二者选其一)
    <param name="excludeMethods"></param>

    添加全局拦截器
    <default-intercepter-ref></default-intercepter-ref>
    还要添加全局返回页面:用于强制登录(即拦截器类中如果从session里面获取的是空,则return "relogin")
    <global-results>
    <result name="relogin">
    /login.jsp
    </result>
    </global-results>

    <!-- 配置拦截器 -->
    <interceptors>
    <interceptor name="loginInterceptor" class="com.oak.interceptor.LoginIntercrptor"></interceptor>
    <!-- 配置拦截器栈 -->
    <interceptor-stack name="mysql">
    <!-- 系统拦截器栈,,name值是固定的 -->
    <interceptor-ref name="defaultStack"></interceptor-ref>
    <interceptor-ref name="loginInterceptor">
    <param name="excludeMethods">toLogin,login</param>
    </interceptor-ref>
    </interceptor-stack>
    </interceptors>

    <!-- 设置全局拦截器 -->
    <default-interceptor-ref name="mysql"></default-interceptor-ref>
    <!-- 公共跳转页
    global-results一般和全局拦截器(比如方法拦截器)
    搭配使用 -->
    <global-results>
    <result name="relogin">
    /login.jsp
    </result>
    </global-results>
    <action name="toLogin" class="com.oak.action.UserAction" method="toLogin">
    <result>
    /login.jsp
    </result>
    </action>
    <action name="logindemo" class="com.oak.action.UserAction" method="login">
    <result name="success">
    /admin_index.jsp
    </result>
    <result name="error">

    /login.jsp
    </result>

  • 相关阅读:
    /pentest/enumeration/0trace/0trace.sh
    2.2synchronized同步语句块
    2.1synchronized同步方法
    第二章:对象及变量的并发序言
    第一章总结
    1.11守护线程
    1.10线程的优先级
    1.9yield方法
    1.8暂停线程
    微信自动回复
  • 原文地址:https://www.cnblogs.com/love1/p/7777804.html
Copyright © 2011-2022 走看看