全网整合营销服务商

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

免费咨询热线: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 


相关文章: 公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  相册网站制作软件,图片上的网址怎么复制?  定制建站模板如何实现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小时内与您取得联系。