spring 拦截器配置和创建

配置文件请看上一篇,这篇只写实现:


package com.bz.cy.interceptor;

import java.io.PrintWriter;

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

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class UserVipInterceptor extends HandlerInterceptorAdapter
{
	// 还没发现可以直接配置不拦截的资源,所以在代码里面来排除
	public String[] allowUrls;

	public void setAllowUrls(String[] allowUrls)
	{
		this.allowUrls = allowUrls;
	}

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
			Object handler) throws Exception
	{
		String requestUrl = request.getRequestURI().replace(request.getContextPath(), "");
		String requestPath = request.getServletPath();
		System.out.println("request:" + requestPath);

		System.out.println(requestUrl);
		if (null != allowUrls && allowUrls.length >= 1)
			for (String url : allowUrls)
			{
				if (requestUrl.contains(url))
				{
					return true;
				}
			}
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		HttpSession session = request.getSession();
		String servletPath = request.getContextPath();

		if (null == session.getAttribute("landId"))
		{
			// 未登录
			PrintWriter out = response.getWriter();
			StringBuilder builder = new StringBuilder();
			builder.append("<script type=\"text/javascript\" charset=\"UTF-8\">");
			builder.append("alert(\"页面过期,请重新登录\");");
			builder.append("window.top.location.href=\"");
			builder.append(servletPath + "/login.jsp\";</script>");
			out.print(builder.toString());
			out.close();
			return false;
		}
		else
		{
			// 未登录 跳转到登录页面
			return super.preHandle(request, response, handler);
		}

	}
}

这是简单的spring拦截器的创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值