Spring MVC 过滤器
Spring—MVC 项目, 定义的过滤器类:
代码如下:
package com.cmcc.soc.aop;
import org.springframework.web.filter.OncePerRequestFilter; // 过滤器类 需要 实现的 每次请
求都过滤的类
import javax.servlet.FilterChain; //请求的 处理链
import javax.servlet.ServletException; //servlet 的异常
import javax.servlet.http.HttpServletRequest; //http 的请求
import javax.servlet.http.HttpServletResponse; //http 的响应
import java.io.IOException; //io 流异常
import java.io.PrintWriter; // 字符输出流
/**
* Project: soc
* User: Henry
* Date: 13-7-26
* Description:
* Modify Memo:
*/
public class AuthenticationFilter extends OncePerRequestFilter {//继承一个 每次都过滤的过滤
器类
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
FilterChain filterChain) throws ServletException, IOException {
// 不过滤的 uri
String[] notFilter = new String[] { "/Login/Login.do","/Home/Index.do"};// 设置不过滤的
uri
// 请求的 uri
String contextpath = request.getContextPath(); //获取上下文的路径
String spring_uri = request.getRequestURI().replace(contextpath, ""); //获取 请求的 uri
boolean doFilter = true;// 简写 doFiter 为 true 时 会执行下面的
for (String s : notFilter) { //遍历 不过滤的 uri
if (spring_uri.equals(s)) { //取过 获取的 uri 包含不过滤的 uri doFiter 返回 false
// 如果 uri 中包含不过滤的 uri,则不进行过滤
doFilter = false;