`
香飘飘2011
  • 浏览: 84276 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

过滤器过滤链接

阅读更多

当系统没有经过验证,直接采取链接的方式访问系统时,需要利用过滤器的功能防止这种现象的产生,保证系统的安全。下面示例如何利用Servlet的filter功能进行过滤:

新建一个SessionChecker类,实现Filter接口

public class SessionChecker implements Filter{
    public void destroy(){

    }
    public void init(FilterConfig arg0) throws ServletException{

    }
    public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOExcepiton,ServeltException{
        //获取访问的链接
       String requestUrl = ((HttpServletRequest)request).getRequestUrl().toString();
          boolean noNeedLogin = false;
         //判断是否已经登录过系统的条件
         noNeedLogin = ((HttpServletRequest)request).getSession().getAttribute("userInfo") !=null  ||  requestUrl.indexOf("login.do") > 0 ;
         //过滤掉某些无需判断的链接,如String notCheckUrl = "actionDataCreate.do,actionOaWfInfo.do";
      String[] nocheck = notCheckUrl.split("[,|,]");
        for(int i=0;i<nocheck.length;i++){
            if(requestUrl.indexOf(nocheck[i]) >=0){
                   noNeedLogin = true;
                   break;
             }
         }
        //如果已经登录了或者访问某些无需过滤的链接时
       if(noNeedLogin){
                   chain.doFilter(request,response);
            }else{
                   request.getRequestDispatcher("/page/login.jsp").forward(request,response);
                  return;
            }
   }
}

 web.xml中的配置如下:

   

<filter>
	<filter-name>SessionChecker</filter-name>
	<filter-class>net.nk.util.filter.SessionChecker</filter-class>
</filter>
<filter-mapping>
	<filter-name>SessionChecker</filter-name>
	<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
	<filter-name>SessionChecker</filter-name>
	<url-pattern>*.do</url-pattern>
</filter-mapping>

 

分享到:
评论

相关推荐

    管道过滤器(软件体系结构)

    管道则用于连接过滤器,实现数据从一个过滤器到另一个过滤器的传递。 - **独立性**:过滤器之间是相互独立的,一个过滤器的状态不会影响其他过滤器的状态。这意味着各个过滤器可以在不同的硬件资源上运行,提高了...

    管道过滤器程序,主要用java实现

    这种模式通过连接一系列的处理组件(过滤器),每个组件执行特定的任务,来实现复杂的数据转换。在这个场景中,"管道过滤器程序,主要用java实现" 指的是一个基于Java的系统,它利用了这种模式来处理数据流。 首先...

    servlet过滤器详解

    - **Filter Chain**:多个过滤器可以按顺序连接起来形成一个过滤器链,每个过滤器依次处理请求。 通过以上介绍,我们可以了解到Servlet过滤器的强大功能及其在Web开发中的重要作用。理解并熟练掌握过滤器的使用可以...

    垃圾邮件过滤器

    在IT领域,垃圾邮件过滤器是一种非常重要的工具,主要用于保护用户免受不必要的、潜在有害的或纯粹烦人的电子邮件侵扰。本项目是一个用Java编程语言实现的垃圾邮件过滤器,旨在帮助用户自动筛选并隔离垃圾邮件。下面...

    过滤器实现鉴权

    "过滤器实现鉴权"这个主题涉及到如何使用过滤器来实现对用户访问特定目录的权限控制,而无需依赖数据库。这种方式常用于小型项目或者快速原型开发,减少了数据库设计和连接的复杂性。 1. **过滤器基础** - 过滤器...

    基于管道过滤器风格的单词排序程序

    通过连接这些过滤器,我们可以构建复杂的数据处理流程。 在Java中,我们可以利用标准输入输出流(System.in和System.out)以及IO库来实现这个模式。首先,程序会从键盘读取用户输入的单词,这可以通过`...

    管道过滤器的实现java

    3. 在主程序类中实例化所需的过滤器,按照处理顺序进行链接。 4. 设置输入和输出流,将数据源连接到过滤器链的开始,将过滤器链的结束连接到数据的目标位置。 5. 调用`read()`或`write()`方法开始数据处理。 标签...

    过滤器操作数据库验证合法用户

    在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它主要用于在请求被实际处理之前或之后执行一些预处理或后处理任务。过滤器在Servlet规范中定义,是实现Servlet API的一部分,允许开发者对HTTP请求和响应...

    用过滤器验证

    ### 用过滤器验证 #### 知识点一:Servlet过滤器的概念与作用 Servlet 过滤器(Filter)是 Java Web 开发中的一个重要组成部分,主要用于实现预处理客户端请求或后处理响应对象的功能。过滤器可以拦截用户请求,并...

    几个有用的过滤器 小技巧

    如果你的应用程序需要强制使用HTTPS协议,可以编写一个过滤器来检查请求是否来自安全连接。如果不是,可以重定向到HTTPS版本的URL。 8. **URL重写过滤器**: 有些时候,为了SEO优化或者URL美观,我们需要对URL...

    javaFilter自定义编码过滤器

    Filter 接口用于定义一个过滤器, FilterChain 接口用于将多个过滤器连接起来,以便实现链式调用。 * Filter 接口: Filter 接口是 Java 中的一种过滤器接口,用于对 HttpServletRequest 和 HttpServletResponse ...

    directshow的AC3解码过滤器

    源过滤器读取包含AC3音频的媒体文件,然后通过连接到解码过滤器,将数据传递给它进行解码。解码后的音频流会被发送到音频渲染过滤器,该过滤器负责将音频发送到音箱或耳机进行播放。 了解了AC3解码过滤器后,我们来...

    关于过滤器和监听器的使用模板

    在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的组件,它们主要用于增强应用程序的功能和管理应用程序的状态。以下是关于这两个概念的详细说明。 **过滤器(Filter)** 过滤器是Servlet...

    设计模式-过滤器模式

    博客链接中的内容可能会进一步解释过滤器模式的概念、优点、适用场景以及如何在不同环境下应用,包括iOS平台。通过学习和实践过滤器模式,开发者可以更好地组织代码,提高代码的可读性和可维护性。

    Java中配置过滤器

    3. **销毁方法**:一般用于释放过滤器占用的资源,如关闭连接等。在这个示例中没有具体实现。 #### 四、过滤器的作用 1. **统一字符编码设置**:确保在整个Web应用程序中使用一致的字符编码,避免乱码问题。 2. **...

    Rinnai林内前置过滤器全屋净水系统RWTS-PF-1说明书.pdf

    《Rinnai林内前置过滤器全屋净水系统RWTS-PF-1说明书》 Rinnai林内作为全球知名的热水器及热水系统制造商,其产品线涵盖了多种家用和商用的水处理设备。其中,RWTS-PF-1前置过滤器是他们针对全屋净水需求推出的一款...

    管道过滤器

    在描述中提到的“两个过滤器,一个数据源”,这通常表示有一个输入源(可能是文件、网络连接或其他数据生成器),以及两个处理这些数据的过滤器。第一个过滤器可能负责初步的数据预处理,比如去除无效字符或进行格式...

    Java servlet过滤器配置详解

    这些过滤器各有用途,例如`TilesFilter`用于处理Struts2的Tiles视图定义,`OpenSessionInViewFilter`则在请求结束时确保数据库会话关闭,防止长时间打开的连接导致资源浪费。 在实际项目中,过滤器可以组合使用,...

    4899过滤器4899过滤器4899过滤器4899过滤器

    4. **谷普下载站.htm**:这可能是一个网页链接,指示用户可以从谷普下载站获取4899过滤器的下载。这类网页通常会提供软件的最新版本、更新日志以及用户评价等信息。 5. **巴巴网址之家.url**:这是一种快捷方式文件...

Global site tag (gtag.js) - Google Analytics