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>

  • 相关阅读:
    【WPF】绘制柱状图、折线图、扇形图
    【WPF】获取容器宽高
    【SQL】SQL Server、MySQL、SQLite获取自增ID、自增ID清零
    【SQL Server操作】SQL Server重命名数据库及解决数据库无法分离的问题
    【数据迁移】MySQL数据库迁移到SQL Server
    【MySQL操作】MySQL导入导出数据库
    【MySQL操作】MySQL Workbench远程连接的一些操作
    【c#】遍历获得一个类的所有属性名
    vue 跨域 springCloud @CrossOrigin注解
    解决IDEA右侧maven不显示方法
  • 原文地址:https://www.cnblogs.com/love1/p/7777804.html
Copyright © 2011-2022 走看看