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

以下代码是继承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
相关文章:
如何通过远程VPS快速搭建个人网站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
建站之星北京办公室:智能建站系统与小程序生成方案解析
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
制作宣传网站的软件,小红书可以宣传网站吗?
建站ABC备案流程中有哪些关键注意事项?
如何确认建站备案号应放置的具体位置?
利用JavaScript实现拖拽改变元素大小
北京企业网站设计制作公司,北京铁路集团官方网站?
兔展官网 在线制作,怎样制作微信请帖?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何用搬瓦工VPS快速搭建个人网站?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
南京网站制作费用,南京远驱官方网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
如何通过免费商城建站系统源码自定义网站主题与功能?
高性价比服务器租赁——企业级配置与24小时运维服务
如何在腾讯云服务器上快速搭建个人网站?
香港网站服务器数量如何影响SEO优化效果?
定制建站哪家更专业可靠?推荐榜单揭晓
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何基于云服务器快速搭建个人网站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
建站之星备案流程有哪些注意事项?
如何在Tomcat中配置并部署网站项目?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何快速查询网址的建站时间与历史轨迹?
如何快速查询域名建站关键信息?
如何快速生成橙子建站落地页链接?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
ui设计制作网站有哪些,手机UI设计网址吗?
制作企业网站建设方案,怎样建设一个公司网站?
婚礼视频制作网站,学习*后期制作的网站有哪些?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
微信推文制作网站有哪些,怎么做微信推文,急?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
建站主机选购指南:核心配置与性价比推荐解析
建站VPS配置与SEO优化指南:关键词排名提升策略
香港服务器建站指南:免备案优势与SEO优化技巧全解析
建站org新手必看:2024最新搭建流程与模板选择技巧
Java解压缩zip - 解压缩多个文件或文件夹实例
如何在建站宝盒中设置产品搜索功能?
小型网站制作HTML,*游戏网站怎么搭建?
详解jQuery中基本的动画方法
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
音乐网站服务器如何优化API响应速度?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
*请认真填写需求信息,我们会在24小时内与您取得联系。