springmvcIntercept(拦截器)
1.创建拦截器
public class MyIntercept implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
System.out.println("MyIntercept.afterCompletion()");
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
System.out.println("MyIntercept.postHandle()");
}
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2) throws Exception {
System.out.println("MyIntercept.preHandle()");
return true;
}
}
2.配置applicationContext.xml
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="cn.cnsdhzzl.intercept.MyIntercept">
</bean>
</mvc:interceptor>
</mvc:interceptors>
访问效果

2. 设置不拦截方法1
设置不拦截器路径
<mvc:exclude-mapping path="/user/login"/>
<mvc:interceptors>
<bean class="com.elin4it.ssm.interceptor.DataInterceptor"/>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/user/login"/>
<bean class="cn.xxx.xxx.interceptor.DataInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
3. 设置不拦截方法2
在拦截器里注入一个属性List<String> exceptUrls
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="cn.rhgk.yqfy.oa.intercept.LoginIntercept">
<property name="exceptUrls">
<list>
<value>/login/auth</value>
<value>/login/exit</value>
</list>
</property>
</bean>
</mvc:interceptor>
</mvc:interceptors>
package cn.rhgk.yqfy.oa.intercept; import java.util.List; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import cn.rhgk.yqfy.oa.pojo.AppAdminLogin; public class LoginIntercept implements HandlerInterceptor { private List<String> exceptUrls; public List<String> getExceptUrls() {
return exceptUrls;
} public void setExceptUrls(List<String> exceptUrls) {
this.exceptUrls = exceptUrls;
} @Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
} @Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
} @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception { String requestUri = request.getRequestURI();
if (requestUri.startsWith(request.getContextPath())) {
requestUri = requestUri.substring(request.getContextPath().length(), requestUri.length());
}
// 系统根目录
if (StringUtils.equals("/", requestUri)) {
return true;
} // 放行exceptUrls中配置的url
for (String url : exceptUrls) {
if (url.endsWith("/**")) {
if (requestUri.startsWith(url.substring(0, url.length() - 3))) {
return true;
}
} else if (requestUri.startsWith(url)) {
return true;
}
} HttpSession session = request.getSession();
AppAdminLogin user = (AppAdminLogin) session.getAttribute("userInfo"); if (null != user) {// 已登陆
return true;
} else {// 当前用户未登陆
response.sendRedirect(request.getContextPath() + "/login/auth");
} return false;
} }
springmvcIntercept(拦截器)的更多相关文章
- 6. ModelDriven拦截器、Preparable 拦截器
1. 问题 Struts2 的 Action 我们将它定义为一个控制器,但是由于在 Action 中也可以来编写一些业务逻辑,也有人会在 Action 输入业务逻辑层. 但是在企业开发中,我们一般会将 ...
- springmvc的拦截器
什么是拦截器 java里的拦截器是动态拦截action调用的对象.它提供了一种机制可以使 ...
- Struts的拦截器
Struts的拦截器 1.什么是拦截器 Struts的拦截器和Servlet过滤器类似,在执行Action的execute方法之前,Struts会首先执行Struts.xml中引用的拦截器,在执行完所 ...
- Struts2拦截器的执行过程浅析
在学习Struts2的过程中对拦截器和动作类的执行过程一度陷入误区,特别读了一下Struts2的源码,将自己的收获分享给正在困惑的童鞋... 开始先上图: 从Struts2的图可以看出当浏览器发出请求 ...
- 学习SpringMVC——拦截器
拦截器,顾名思义就是用来拦截的. 那什么是拦截,又为什么要拦截.对于Spring MVC来说,拦截器主要的工作对象就是用户的请求,拦截下来之后,我们可以在拦截的各个阶段悉心呵护[为所欲为].常见的比如 ...
- alias拦截器的使用
在SSH项目中,有时需要由一个Action跳转到另一个Action.有两种方式可以实现Action之间的跳转,一种是chain,另一种是redirectAction,这两种方式之间的区别是chain是 ...
- Struts2入门(二)——配置拦截器
一.前言 之前便了解过,Struts 2的核心控制器是一个Filter过滤器,负责拦截所有的用户请求,当用户请求发送过来时,会去检测struts.xml是否存在这个action,如果存在,服务器便会自 ...
- 通过拦截器Interceptor实现Spring MVC中Controller接口访问信息的记录
java web工程项目使用了Spring+Spring MVC+Hibernate的结构,在Controller中的方法都是用于处理前端的访问信息,Controller通过调用Service进行业务 ...
- spring 拦截器
1.mvc.xml <!-- 自定义拦截链配置 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping p ...
随机推荐
- JS中isPrototypeOf 和hasOwnProperty 的区别
1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的原型链中,是则返回true,否则返回false. 格式如下: object ...
- python 安装pillow
安装 警告 Pillow >= 2.1.0 不支持 “import _imaging”.请使用 “from PIL.Image import core as _imaging” 代替. 警告 P ...
- 时光煮雨 Unity3D实现2D人物动画② Unity2D 动画系统&资源效率
系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...
- 多列布局——column-width
column-width的使用和CSS中的width属性一样,不过不同的是,column-width属性在定义元素列宽的时候,既可以单独使用,也可以和多列属性中其他属性配合使用.其基本语法如下所示 : ...
- jQuery的deferred对象详解(转载)
本文转载自: jQuery的deferred对象详解(转载)
- paper 110:凸优化和非凸优化
数学中最优化问题的一般表述是求取,使,其中是n维向量,是的可行域,是上的实值函数.凸优化问题是指是闭合的凸集且是上的凸函数的最优化问题,这两个条件任一不满足则该问题即为非凸的最优化问题. 其中,是 凸 ...
- JVM参数设置、分析(转发)
JVM参数的含义 实例见实例分析 参数名称 含义 默认值 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,J ...
- [课程设计]Scrum 2.2 多鱼点餐系统开发进度(下单页面修复&美化)
[课程设计]Scrum 2.2 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB ...
- c#链接数据库
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; usin ...
- JAVA线程锁lock下Condition的使用
import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.uti ...