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>

  • 相关阅读:
    关于js原型链继承的一些复习
    echarts 柱状图
    js的属性监听
    改变input[type=range]的样式 动态滑动
    占位符 css
    JS简单实现:根据奖品权重计算中奖概率实现抽奖的方法
    layui navTree 动态渲染菜单组件介绍
    配置单机Kafka
    树莓派安装pip3以及扩展包的方法
    Gunicorn+Nginx+Flask项目部署
  • 原文地址:https://www.cnblogs.com/love1/p/7777804.html
Copyright © 2011-2022 走看看