全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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 
    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小时内与您取得联系。