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

以下代码是继承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
String uri = request.getRequestURI();
// uri中包含background时才进行过滤
if (uri.indexOf("background") != -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("<script type=\"text/javascript\">");
builder.append("alert('网页过期,请重新登录!');");
builder.append("window.top.location.href='");
builder.append(loginPage);
builder.append("';");
builder.append("</script>");
out.print(builder.toString());
} else {
// 如果session中存在登录者实体,则继续
filterChain.doFilter(request, response);
}
} else {
// 如果不执行过滤,则继续
filterChain.doFilter(request, response);
}
} else {
// 如果uri中不包含background,则继续
filterChain.doFilter(request, response);
}
}
}
写完过滤器后,需要在web.xml中进行配置:
<filter> <filter-name>sessionFilter</filter-name> <filter-class>com.test.spring.filter.SessionFilter</filter-class> </filter> <filter-mapping> <filter-name>sessionFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# springmvc
# 登录过滤器
# 权限过滤器
# 浅谈springMVC拦截器和过滤器总结
# 通过原理解析Spring mvc的内置编码过滤器
# 中不
# 下午
# 弹出
# 时才
# 写完
# 大家多多
# 拦截器
# HttpServletResponse
# HttpServletRequest
# org
# web
# springframework
# http
# javax
# PrintWriter
# servlet
# ServletException
# FilterChain
# void
# protected
相关文章:
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
相册网站制作软件,图片上的网址怎么复制?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
网页设计网站制作软件,microsoft office哪个可以创建网页?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
建站主机选哪种环境更利于SEO优化?
如何基于云服务器快速搭建个人网站?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
如何在万网主机上快速搭建网站?
如何快速搭建支持数据库操作的智能建站平台?
如何用低价快速搭建高质量网站?
javascript中的try catch异常捕获机制用法分析
已有域名如何免费搭建网站?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
三星网站视频制作教程下载,三星w23网页如何全屏?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
建站主机系统SEO优化与智能配置核心关键词操作指南
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
建站VPS配置与SEO优化指南:关键词排名提升策略
javascript基本数据类型及类型检测常用方法小结
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
黑客如何通过漏洞一步步攻陷网站服务器?
济南专业网站制作公司,济南信息工程学校怎么样?
公司网站制作价格怎么算,公司办个官网需要多少钱?
,柠檬视频怎样兑换vip?
制作网站公司那家好,网络公司是做什么的?
如何在建站主机中优化服务器配置?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
建站之星如何优化SEO以实现高效排名?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
php json中文编码为null的解决办法
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
高端建站三要素:定制模板、企业官网与响应式设计优化
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
动图在线制作网站有哪些,滑动动图图集怎么做?
如何制作一个表白网站视频,关于勇敢表白的小标题?
重庆市网站制作公司,重庆招聘网站哪个好?
如何快速重置建站主机并恢复默认配置?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
香港服务器租用每月最低只需15元?
定制建站流程步骤详解:一站式方案设计与开发指南
香港服务器建站指南:免备案优势与SEO优化技巧全解析
网站制作免费,什么网站能看正片电影?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Python如何创建带属性的XML节点
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
油猴 教程,油猴搜脚本为什么会网页无法显示?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。