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;
} }

最新文章

  1. 每天一个linux命令(47):iostat命令
  2. [转载]Bison-Flex 笔记
  3. 一 java线程的等待/通知模型
  4. 【故障处理】一次RAC故障处理过程
  5. mactype支持qq浏览器
  6. Ubuntu14.04通过pyenv配置多python
  7. 设置php下载文件的超时时间
  8. SpringMVC重定向视图RedirectView小分析
  9. ondragover 事件规定在何处放置被拖动的数据
  10. window.open被浏览器拦截的解决方案
  11. java图片处理
  12. 注意!ASP.NET MVC 3 的一个 OutputCache 问题
  13. Java学习----对象间的继承
  14. STM32驱动DHT11温湿度传感器
  15. HDFS概述(3)————HDFS Federation
  16. Spring Boot 2.x 编写 RESTful API (二) 校验
  17. VimFaultException A specified parameter was not correct configSpec.guestId
  18. 《ServerSuperIO Designer IDE使用教程》- 5.树形结构管理设备驱动,小版本更新。发布:v4.2.3.1版本
  19. Ubuntu 安装 Docker CE(社区版)
  20. canal-client无法获取数据

热门文章

  1. HTTPS与强制门户
  2. RDIFramework.NET ━ 9.7 操作权限项管理 ━ Web部分
  3. [Android Tips] 4. Dismiss PopupWindow when touch outside
  4. 写在开始编写Java之前(2)——Java的环境
  5. Control Flow
  6. Thinkphp--------为什么Thinkphp会默认进入Index控制器的index方法
  7. 使用uiautomator做UI测试
  8. [课程设计]Scrum 1.5 多鱼点餐系统开发进度(点餐页面框架修复及继续布置)
  9. &quot;Unity测试系列&quot;文章索引
  10. python学习之安装模块