springmvcIntercept(拦截器)
2024-10-01 05:21:28
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;
} }
最新文章
- 每天一个linux命令(47):iostat命令
- [转载]Bison-Flex 笔记
- 一 java线程的等待/通知模型
- 【故障处理】一次RAC故障处理过程
- mactype支持qq浏览器
- Ubuntu14.04通过pyenv配置多python
- 设置php下载文件的超时时间
- SpringMVC重定向视图RedirectView小分析
- ondragover 事件规定在何处放置被拖动的数据
- window.open被浏览器拦截的解决方案
- java图片处理
- 注意!ASP.NET MVC 3 的一个 OutputCache 问题
- Java学习----对象间的继承
- STM32驱动DHT11温湿度传感器
- HDFS概述(3)————HDFS Federation
- Spring Boot 2.x 编写 RESTful API (二) 校验
- VimFaultException A specified parameter was not correct configSpec.guestId
- 《ServerSuperIO Designer IDE使用教程》- 5.树形结构管理设备驱动,小版本更新。发布:v4.2.3.1版本
- Ubuntu 安装 Docker CE(社区版)
- canal-client无法获取数据
热门文章
- HTTPS与强制门户
- RDIFramework.NET ━ 9.7 操作权限项管理 ━ Web部分
- [Android Tips] 4. Dismiss PopupWindow when touch outside
- 写在开始编写Java之前(2)——Java的环境
- Control Flow
- Thinkphp--------为什么Thinkphp会默认进入Index控制器的index方法
- 使用uiautomator做UI测试
- [课程设计]Scrum 1.5 多鱼点餐系统开发进度(点餐页面框架修复及继续布置)
- ";Unity测试系列";文章索引
- python学习之安装模块