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>
struts2之登陆拦截的更多相关文章
- JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现
一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implemen ...
- 【Java EE 学习 70 上】【数据采集系统第二天】【数据加密处理】【登陆验证】【登陆拦截器】【新建调查】【查询调查】
一.数据加密处理 这里使用MD5加密处理,使用java中自带加密工具类MessageDigest. 该类有一个方法digest,该方法输入参数是一个字符串返回值是一个长度为16的字节数组.最关键的是需 ...
- Struts2透过自定义拦截器实现登录之后跳转到原页面
Struts2通过自定义拦截器实现登录之后跳转到原页面 这个功能对用户体验来说是非常重要的.实现起来其实很简单. 拦截器的代码如下: package go.derek.advice; import g ...
- Struts2的核心——拦截器
虽然以前已经学了很多的拦截器,但是在这里还是想重头梳理一下所有有关拦截器的知识,尤其是struts2中的拦截器 1:拦截器是什么? java里的拦截器是动态拦截Action调用的对象.它提供了一种机制 ...
- struts2 的自定义 拦截器
Struts2的 拦截器: 对于拦截器,Struts2官方给出的 定义是: 拦截器是动态拦截Action调用的对象.它提供了一种机制,使开发者可以定义一段代码,在Action执行之前或者之后被调用执行 ...
- 5.Struts2中的拦截器
拦截器是Struts2中的核心,其自带很多很多的拦截器,这里主要介绍一下自定义拦截器,恩多一半情况下呢?我们不需要使用到自定义的拦截器,Struts2本身已经提 供了很多的拦截器供我们使用,对于自定义 ...
- struts2基础——自定义拦截器
一.自定义拦截器 默认的拦截器能实现的功能是有限的,Struts2 支持自定义拦截器. 二.拦截器类 1.实现 Interceptor 接口 2.继承 AbstractInterceptor 抽象类, ...
- Struts2(十四)拦截器实现权限管理
一.认识拦截器 拦截器也是一个类 拦截器可以在Action被调用之前和之后执行代码 框架很多核心功能是拦截器实现的 拦截器的特点: 拦截器自由组合,增强了灵活性.扩展性.有利于系统解耦 拦截器可以拦截 ...
- 十五、struts2中的拦截器(框架功能核心)
十五.struts2中的拦截器(框架功能核心) 1.过滤器VS拦截器 功能是一回事. 过滤器是Servlet规范中的技术,可以对请求和响应进行过滤. 拦截器是Struts2框架中的技术,实现AOP(面 ...
随机推荐
- [CF429E]Points ans Segments_欧拉回路
Points and Segments 题目链接:www.codeforces.com/contest/429/problem/E 注释:略. 题解: 先离散化. 发现每个位置如果被偶数条线段覆盖的话 ...
- 小菜鸟之crond
前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...
- [HihoCoder-1424] Asa's Chess Problem
有上下界的费用流 #include <stdio.h> #include <algorithm> #include <queue> #include <cst ...
- Python实现二叉树的非递归中序遍历
思路: 1. 使用一个栈保存结点(列表实现): 2. 如果结点存在,入栈,然后将当前指针指向左子树,直到为空: 3. 当前结点不存在,则出栈栈顶元素,并把当前指针指向栈顶元素的右子树: 4. 栈不为空 ...
- Junit测试类中如何调用Http通信
在使用Junit做测试的时候,有时候需要调用Http通信,无论是request还是response或者是session会话,那么在测试类里该如何调用呢,其实很简单,spring给我们提供了三个类 or ...
- Intellj IDEA快捷键入门 之 Ctrl+Space(空格)
Intellj IDEA快捷键入门 之 Ctrl+Space(空格) 时间:2019/11/28 系统:Win10系统 背景: Win10系统下,想把ctrl+space(空格)切换输入法取消, 以防 ...
- # localhost 、217.0.0.1 、本机IP
localhost .217.0.0.1 .本机IP localhost是一个域名,性质跟 "www.baidu.com" 差不多,指向127.0.0.1这个IP地址,在windo ...
- 作为小白该如何抉择python编辑器?
刚开始接触编程,有一个好的编辑器上手,那学习起来肯定是事半功倍的!本篇就给大家介绍适合零基础小白学习Python的四种编辑器,希望大家受用! 1.Sublime Text: 这是一个轻量级的代码编辑器 ...
- html跑马灯/走马灯效果
实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入“<marquee>滚动的文字</marquee>”语句,它的效果如下所示: ...
- 怎样获取所有的script节点
1. 使用document.scripts; document.scripts instanceof HTMLCollection; // true 2. 使用 document.getElement ...