Spring MVC过滤器-登录过滤的代码实现
发布时间 - 2026-01-10 22:21:50 点击率:次一个非常简单的登录权限拦截器,具体代码如下:

以下代码是继承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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Laravel如何自定义错误页面(404, 500)?(代码示例)
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
js实现点击每个li节点,都弹出其文本值及修改
IOS倒计时设置UIButton标题title的抖动问题
如何快速搭建安全的FTP站点?
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
如何在阿里云高效完成企业建站全流程?
如何用VPS主机快速搭建个人网站?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
如何在万网主机上快速搭建网站?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何配置和使用缓存?(Redis代码示例)
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何在建站之星绑定自定义域名?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Laravel如何使用Eloquent进行子查询
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
深圳网站制作培训,深圳哪些招聘网站比较好?
Laravel PHP版本要求一览_Laravel各版本环境要求对照
如何在IIS服务器上快速部署高效网站?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
怎么用AI帮你为初创公司进行市场定位分析?
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
如何用IIS7快速搭建并优化网站站点?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
PHP 500报错的快速解决方法
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
如何在IIS中新建站点并解决端口绑定冲突?
教学论文网站制作软件有哪些,写论文用什么软件
?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
上一篇:yi怎么调用公共函数
上一篇:yi怎么调用公共函数

