关注微信公众号 太平洋学习网 扫描二维码
最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

HandlerInterceptor拦截器在spring mvc中的简单使用

Javaweb 太平洋学习网 浏览 评论

HandlerInterceptor拦截器在spring mvc中通常用于会员登录过滤,或简单的权限验证等,HandlerInterceptor拦截器是一个接口类,如果要使用它,就必须得新建一个类,实现HandlerInterceptor,并实现里面的方法。

例如当一个用户要访问admin后台时,我们要做一个判断,如果该用户没有登录,我们就要让他跳转到login登录界面,下面是spring mvc中HandlerInterceptor拦截器的使用方法,如下:

步骤一:先在springmvc.xml视图配置文件中加入<mvc:interceptors>拦截器配置,所有访问如http://ip/admin后台的请求,都要经过这个拦截器做一些处理,配置如下。

<mvc:interceptors>
	<!-- 配置登陆拦截器 -->
	<mvc:interceptor>
		<mvc:mapping path="/admin/**" />
		<bean class="cn.com.xfweblogin.filter.LoginHandlerIntercepter"></bean>
	</mvc:interceptor>
</mvc:interceptors>


步骤二:创建一个LoginHandlerIntercepter类,继承HandlerInterceptor拦截器接口,实现拦截器接口里面的三个方法,代码如下:

package com.tpyyes.filter;

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

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
 * 登陆过滤
 *
 */
public class LoginHandlerIntercepter implements HandlerInterceptor {
            
        //拦截器一,只有返回true,才会通过拦截器的验证,否则就会跳转到登录页
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
		String path = request.getContextPath();
		String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
		//假如登录时,用户已经存入session
		HttpSession session = request.getSession();
		String username = (String) session.getAttribute("userId");
		if (username != null) {
			return true;
		} else {

			response.sendRedirect(basePath + "/login");
			return false;
		}

	}
	
	//拦截器二,上一个拦截器返回true,才会到这个拦截器,此拦截器可以通过ModelAndView向特定的页面传递参数或跳转页面等
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {

	}
	
	//拦截器三:当第一个拦截器返回true,才会执行此拦截器里面的方法
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {

	}

}

HandlerInterceptor拦截器在spring mvc中的使用就是这么简单,其实它可以做很多事情,就看你怎么使用这个拦截器了。

如果有什么建议或意见,可以关注“太平洋学习网”微信公众号,与小编联系。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/2018/0109/471.html

    与本文相关的文章