`
Silmon
  • 浏览: 54533 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

简单的一个实现javax.servlet.Filter过滤器实例

    博客分类:
  • J2EE
阅读更多
package demo;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/*
 * --------------------DemoFilter演示过滤器的用法----------------------------
 * 统一编码规则
 * 判断用户判断session
 * 选择远程主机ip
 * 过滤非法文字
 */

public class DemoFilter implements Filter {

    public void destroy() {
    // TODO Auto-generated method stub
    System.out.println("Filter销毁...");
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    // TODO Auto-generated method stub
    HttpServletRequest res = (HttpServletRequest) request;
    HttpServletResponse rep = (HttpServletResponse) response;
    System.out.println("filter执行...");
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    String test = request.getParameter("test");
    if (test != null) {
        String anyOneChar="Area";
        if (test.indexOf(anyOneChar) != -1) {
        System.out.println(test + "属于非法字段!!");
        test=test.replaceAll(anyOneChar, "***");
        System.out.println("已经替换为" + test);
       
        } else {
        System.out.println("Filter通过!!");
        }
    }
    HttpSession session = res.getSession();
    if (session.getAttribute("aa") != null) {
        System.out.println("not null");

    } else {
        System.out.println("null");
    }
    String ip = request.getRemoteAddr();
    if (ip.startsWith("127")) {
        System.out.println("你的ip为" + ip + "本来是不可以访问本站哦!!");

    } else {
        System.out.println("continue..");
    }
    chain.doFilter(request, response);

    }

    public void init(FilterConfig filterConfig) throws ServletException {
    // TODO Auto-generated method stub
    System.out.println("Filter初始化...");

    }

}

 

分享到:
评论

相关推荐

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    - `Filter`和`FilterChain`: 用于实现请求过滤器,可以在请求到达Servlet之前进行预处理,或在响应发送回客户端之后进行后处理。 - `DispatcherType`: 定义了不同的请求调度类型,如REQUEST、FORWARD、INCLUDE等。...

    javax.servlet-api-3.1.0.jar

    开发者可以通过实现`javax.servlet.Filter`接口来创建过滤器,并通过`web.xml`部署描述符配置过滤规则。 Listener则是在特定事件发生时被调用的类,比如session创建、销毁或请求初始化等。它们通过实现不同的监听器...

    javax.servlet源码

    2. **GenericServlet类**:这是一个抽象类,实现了Servlet接口,提供了通用的生命周期方法实现,但`service()`方法是抽象的,需要子类重写以处理特定类型的请求。 3. **HttpServlet类**:扩展了GenericServlet,...

    servlet.jar javax.servlet.jar

    javax.servlet.jar则提供了更多与Servlet相关的类和接口,包括对HTTP请求和响应的封装、会话管理、过滤器、监听器等功能。例如,`javax.servlet.ServletRequest`和`javax.servlet.ServletResponse`接口分别代表了...

    javax.servlet.rar

    7. **FilterChain**:`javax.servlet.FilterChain`接口代表一个过滤器链,一个请求在到达目标Servlet之前,会依次通过链上的每个过滤器。 8. **DispatcherType**:`javax.servlet.DispatcherType`枚举类型定义了...

    javax-servlet源码包和jar文件

    4. **Filter机制**: `javax.servlet.Filter` 接口定义了过滤器,可以在请求到达Servlet之前和响应离开Servlet之后进行拦截处理。比如,可以使用过滤器实现登录检查、GZIP压缩、字符编码转换等功能。 5. **JSP基础**...

    javax.servlet api参考(英文版)

    `javax.servlet` API是Java平台上的一个核心组件,主要用于构建Web应用程序。这个API提供了一组接口和类,允许开发者创建Servlets,这是处理HTTP请求的Java程序。在本篇文章中,我们将深入探讨`javax.servlet` API的...

    javax.servlet插件 必备工具

    11. **过滤器(Filter)**:Servlet API也提供了Filter接口,允许开发者在请求到达Servlet之前或离开Servlet之后进行拦截,实现如登录检查、字符编码转换、日志记录等功能。 12. **监听器(Listener)**:Listener...

    Servlet过滤器小实例

    1. **过滤器接口实现**:首先定义一个实现了`javax.servlet.Filter`接口的类`Filter`。 2. **初始化方法`init()`**:在过滤器创建时被调用,可以用来进行一些初始化操作。 3. **销毁方法`destroy()`**:在过滤器销毁...

    javax.servlet-api-4.0.1.jar

    5. Filter接口:Servlet API还引入了过滤器(Filter),允许在请求到达Servlet之前或之后执行拦截操作。 三、Servlet生命周期 Servlet的生命周期主要包括加载、初始化、服务和销毁四个阶段。Servlet的生命周期由Web...

    servlet过滤器实例经典过滤器

    根据Java Servlet规范,过滤器(Filter)是一个实现了javax.servlet.Filter接口的类,它能够在请求处理链中插入额外的逻辑。通过在web.xml文件中定义过滤器,我们可以指定哪些请求路径需要被过滤,并且可以设置多个...

    Servlet过滤器使用

    这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain)...

    servlet过滤器技术实例,

    Servlet过滤器遵循Java Servlet规范,通过实现`javax.servlet.Filter`接口来创建自定义过滤器。它能够对HTTP请求和响应进行预处理和后处理,例如:数据验证、字符编码转换、日志记录、权限控制等。过滤器链的概念...

    jsp-api.jar和servlet-api.jar

    6. **过滤器和监听器** - Servlet API中还包括Filter和Listener接口,它们能增强应用的功能,比如实现登录验证、字符编码转换、会话管理等。 7. **Web容器** - 如Tomcat、Jetty等,它们提供运行Servlet和JSP的环境...

    教会你如何在java中建过滤器

    init 方法是 Servlet 过滤器的初始化方法,doFilter 方法完成实际的过滤操作,destroy 方法是在 Servlet 容器销毁过滤器实例前调用的方法。 在创建 Servlet 过滤器时,需要实现 javax.servlet.Filter 接口的 ...

    servlet.jar包

    此外,Servlet API还提供了过滤器(Filter)和监听器(Listener)的概念,它们允许开发者在请求到达Servlet之前进行拦截处理,或者监听特定的事件,如session创建、销毁等。 JSP技术则是基于Servlet的,它将HTML和...

    servlet+jsp实现过滤器 防止用户未登录访问

    通过实现javax.servlet.Filter接口,我们创建了一个LoginFilter类。这个过滤器会在每个请求到达目标页面之前执行,从而根据session中的信息来判断用户是否已经登录。 过滤器类LoginFilter中有几个关键的方法。首先...

    Servlet过滤器的简单使用源码+文档

    1. `init(FilterConfig config)`:在过滤器实例化后并首次被调用时,服务器会调用这个方法。在这里,可以初始化过滤器的配置参数,这些参数通常在`web.xml`文件中定义。 2. `doFilter(ServletRequest request, ...

    javaweb servlet(两种方式)和 filter的最简单实例

    Filter是JavaWeb中的一个中间件,它可以拦截请求和响应,执行一些预处理或后处理操作,如登录检查、数据过滤、字符编码转换等。创建Filter需要实现`javax.servlet.Filter`接口: ```java import javax.servlet.*; ...

    servlet-api.jar.zip

    `javax.servlet.Filter`接口定义了过滤器的行为,而`javax.servlet.FilterChain`则用于调用下一个过滤器或目标Servlet。 8. **DispatcherType**:`javax.servlet.DispatcherType`枚举类型定义了Servlet的调度类型,...

Global site tag (gtag.js) - Google Analytics