Spring MVC过滤器

网友投稿 195 2023-06-19


Spring MVC过滤器

一个非常简单的登录权限拦截器,具体代码如下:

以下代码是继承OncePerRequestFilter实现登录过滤的代码:

/**

*

* @author geloin

* @date 2012-4-10 下午2:37:38

*/

package com.test.spring.filter;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.FilterChain;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.filter.OncePerRequestFilter;

/**

* 登录过滤

*

* @author geloin

* @date 2012-4-10 下午2:37:38

*/

public class SessionFilter extends OncePerRequestFilter {

/*

* (non-Javadoc)

*

* @see

* org.springframework.web.filter.OncePerRequestFilter#doFilterInternal(

* javax.servlet.http.HttpServletRequest,

* javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain)

*/

@Override

protected void doFilterInternal(HttpServletRequest request,

HttpServletResponse response, FilterChain filterChain)

throws ServletException, IOException {

// 不过滤的uri

String[] notFilter = new String[] { "login.html", "index.html" };

// 请求的uri

Sthttp://ring uri = request.getRequestURI();

// uri中包含background时才进行过滤

if (uri.indexOf("baGNGvRkTbKgckground") != -1) {

// 是否过滤

boolean doFilter = true;

for (String s : notFilter) {

if (uri.indexOf(s) != -1) {

// 如果uri中包含不过滤的uri,则不进行过滤

doFilter = false;

break;

}

}

if (doFilter) {

// 执行过滤

// 从session中获取登录者实体

Object obj = request.getSession().getAttribute("loginedUser");

if (null == obj) {

// 如果session中不存在登录者实体,则弹出框提示重新登录

// 设置request和response的字符集,防止乱码

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

PrintWriter out = response.getWriter();

String loginPage = "....";

StringBuilder builder = new StringBuilder();

builder.append("");

out.print(builder.toString());

} else {

// 如果session中存在登录者实体,则继续

filterChain.doFilter(request, response);

}

} else {

// 如果不执行过滤,则继续

filterChain.doFilter(request, response);

}

} else {

// 如果uri中不包含background,则继续

filterChain.doFilter(request, response);

}

}

}

写完过滤器后,需要在web.xml中进行配置:

sessionFilter

com.teshttp://t.spring.filter.SessionFilter

sessionFilter

/*


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序 tabs选项卡效果的实现
下一篇:利用Log4j将不同Package的日志输出到不同文件的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~