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(面 ...
随机推荐
- Dijkstra算法——超~~详细!!
Dijkstra算法_ ** 时隔多月,我又回来了!**_ 今天下午久违的又学了会儿算法,又重新学习了一遍Dijkstra,这是第三次重新学习Dijkstra(*以前学的都忘完了>_<*) ...
- C - Co-prime
Given a number N, you are asked to count the number of integers between A and B inclusive which are ...
- django中的缓存 跨域问题(同源策略)
django缓存机制 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作 ...
- linux下mysql部署
mysql 1.拓扑结构 mysql集群有如下三层: 应用程序层:负责与mysql服务器通信的各种应用程序. Mysql服务器层:处理SQL命令,并与NDB存储引擎通信和Mysql服务器. NDB集群 ...
- Django模型(model)系统
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- Codeforces 1189F. Array Beauty
传送门 首先可以注意到序列里面元素的顺序对答案是没有影响的,所以二话不说先排序再看看怎么搞 考虑枚举每种子序列可能产生的贡献并算一下产生这个贡献的子序列有多少 考虑设 $F(x)$ 表示选择的元素差值 ...
- centos中拉取postgre
新搭建好的linux服务器环境,docker也配置好了. 第一步,下载postgre docker pull postgres:11 这里的版本号自己按照自己的需要来获取. 然而实际上没那么顺利,直接 ...
- OSG3.4内置Examples解析【目录】
opengl渲染管线 从整体上解读OpenGL的渲染流程 一 从整体上解读OpenGL的渲染流程 二 osg与animate相关示例解析 OSG3.4内置Examples(osganimate)解析 ...
- 在realm中动态查询用户的权限&角色
@Controller @Scope("prototype") @Namespace("/") @ParentPackage("struts-defa ...
- vue 通过 name 和 params 进行调整页面传参刷新参数丢失问题&vue路由可选参数
vue 通过 name 和 params 进行调整页面传参刷新参数丢失问题 router.js: export default new Router({ routes: [ { path: '/', ...