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>

  • 相关阅读:
    安装tensorflow-gpu
    Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
    js,jq获取父,兄弟,子节点整理
    dos 命令
    用JavaScript实现自动点击由confirm弹出的对话框中的“确定”按钮
    解决UnicodeEncodeError: 'gbk' codec can't encode character u'u25aa' in position 344 : illegal multiby
    JS中的document.title可以获取当前网页的标题
    python中的3目运算(3元表达式)
    ajax 怎么重新加载页面
    python win32api 如何用代码模拟点击网页confirm框的确定按钮
  • 原文地址:https://www.cnblogs.com/love1/p/7777804.html
Copyright © 2011-2022 走看看