文档章节

spring mvc interceptor拦截器拦截请求

一杯82年的JAVA
 一杯82年的JAVA
发布于 2016/08/21 19:06
字数 396
阅读 311
收藏 4

自己写项目玩又要用到简单的权限管理,于是总结下拦截器的简单使用。

spring-mvc.xml配置

<!-- 拦截器设置 -->
	<mvc:interceptors>
		<mvc:interceptor>
			<!-- 拦截所有请求 -->
			<!-- <mvc:mapping path="/**" /> -->
			<mvc:mapping path="/god/**" />
			<mvc:mapping path="/blog/**" />
			<mvc:mapping path="/file/**" />
			<bean class="com.jiest.interceptor.MyInterceptor" />
		</mvc:interceptor>
	</mvc:interceptors>

自定义拦截器的类所在路径:com.jiest.interceptor.MyInterceptor

要拦截的路径为各个controller,如果只写一个/**则是拦截所有请求,包括静态资源。

package com.jiest.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class MyInterceptor implements HandlerInterceptor {

    // 写自己的规则,通过返回true,拦截返回false
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		String uri = request.getRequestURI();// 实际访问的接口:/home/blog/list
		System.out.println(uri);
		// 下面的接口是需要验证的,首先验证是否登录
		Object isLogin = request.getSession().getAttribute("login");
		if (isLogin == null || !isLogin.equals(1)) {
			System.out.println("error: unlogin");
			// response.sendError(401);// 未登陆
			return false;
		}
		return true;
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		// System.out.println("IcmsInterceptor.postHandle()");
		// 这句话的意思,是让浏览器用utf8来解析返回的数据
		response.setHeader("Content-type", "text/html;charset=UTF-8");
		// 这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859
		response.setCharacterEncoding("UTF-8");
	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
	}

}

大概就这样了。

突然想起,做个人网站,权限管理没必要像之前项目那么麻烦,还弄些表。既然这个网站只有一个管理员,那我完全可以只对POST请求做拦截验证,这样简单多了。

© 著作权归作者所有

一杯82年的JAVA
粉丝 8
博文 76
码字总数 36575
作品 0
杭州
程序员
私信 提问
SpringMVC中使用Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判...

凯文加内特
2015/05/29
590
0
Spring MVC 拦截器(1)-HandlerInterceptor

拦截器的用途是非常广的,它主要的作用是拦截用户请求,处理数据,判定请求是否合理,决定是否放行。通常把拦截器用来验证权限、判断用登陆状态等。 springMVC中对拦截器有良好的支持。一般可...

博为峰教研组
2016/12/18
56
0
详解SpringMVC中使用Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判...

微wx笑
2018/05/11
0
0
Spring3中的mvc:interceptors标签配置拦截器

mvc:interceptors 这个标签用于注册一个自定义拦截器或者是WebRequestInterceptors. 可以通过定义URL来进行路径请求拦截,可以做到较为细粒度的拦截控制。 例如在配置文件加入 <?xml versio...

随智阔
2014/03/11
78
0
SpringMVC使用Interceptor拦截器

SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判...

Rickxue
2016/01/18
165
0

没有更多内容

加载失败,请刷新页面

加载更多

PhotoShop 色调:理解直方图/RGB通道信息

一、直方图:图表的形式,展示图像像素分布的情况 1.平均值:表示平均亮度 2.标准偏差值:表示亮度值范围内的中间值 3.像素: 表示用于计算直方图的像素总数 4.色阶:显示指针下面的区域亮度...

东方墨天
14分钟前
5
0
wildfly(JBoss AS)应用服务器快速入门

什么是wildfly JBoss AS 从8版本起名为wildfly。Wildfly是一个开源的基于JavaEE的轻量级应用服务器。可以在任何商业应用中免费使用。 WildFly是一个灵活的、轻量的、强大管理能力的应用程序服...

程序新视界
39分钟前
2
0
Java集合类常见面试知识点总结

Java集合类学习总结 这篇总结是基于之前博客内容的一个整理和回顾。 这里先简单地总结一下,更多详细内容请参考我的专栏:深入浅出Java核心技术 https://blog.csdn.net/column/details/21930...

Java技术江湖
42分钟前
6
0
怎么用for循环打出爱心

先上效果图: 这是用*组成的爱心,下面讲讲思路: 首先这个图形可以拆分成三部分:第一部分是上面三行的两个梯形,第二部分是中间三行的长方形,第三部分是最下面的倒三角形。 其实图形拆分好...

INEVITABLE
48分钟前
4
0
用HttpUrlConnection伪造成HttpClient

https://www.jianshu.com/p/27ad06cc39d2

shzwork
53分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部