`

Servlet 3.0 @WebFilter and @WebServlet

    博客分类:
  • JEE
阅读更多

Servlet 3.0 provides new annotation @WebFilter to simplify the configuration of a servlet filter. Here's a simple example and the filter will be invoked with url pattern "/student/*":

 

package com.jxee.action;

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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;


@WebFilter(urlPatterns="/student/*")
public class TestFilter implements Filter {
  
  private FilterConfig filterConfig;

  @Override
  public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) 
      throws IOException, ServletException {
     System.out.println(">>>>>>>>>> start filter");
     String path = ((HttpServletRequest)req).getRequestURI();
     System.out.println(">>>>>>>>>> request URI: " + path);
     chain.doFilter(req, resp);
     System.out.println(">>>>>>>>>> exit filter");
  }

  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
     this.filterConfig = filterConfig;
  }
  
  @Override
  public void destroy() {
    System.out.println(">>>>> have a nice one, bye!");
  }
}

 

Servlet 3.0 has similar annotation for servlet. Here's an example, this servlet can be invoked with two url patterns: "/test/myServlet" and "/testServ":

package com.jxee.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns={"/test/myServlet","/testServ"})
public class TestServlet extends HttpServlet {

  @Override
  public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws IOException, ServletException {
    System.out.println("------ doGet(req,resp), i c u ------");
    this.doPost(req, resp);
  }
  
  @Override
  public void doPost(HttpServletRequest req, HttpServletResponse resp)
      throws IOException, ServletException {
    System.out.println("------ doPost(req,resp), i c u ------");
    PrintWriter pw = new PrintWriter(resp.getOutputStream());
    pw.print("i c u!");
    pw.flush();
    pw.close();
  }
}
 

 

 

分享到:
评论

相关推荐

    Servlet3.0参考手册

    Servlet3.0引入了注解,允许开发者直接在类或方法上使用`@WebServlet`、`@WebFilter`和`@WebListener`注解来声明它们,使得代码更加简洁,也更易于维护。 其次,Servlet3.0引入了异步处理能力。通过实现`...

    Servlet3.0特性详解

    在Servlet3.0中,我们可以使用注解(@WebServlet、@WebFilter、@WebListener)来替代web.xml中的XML配置,使得部署更简洁。例如,`@WebServlet("/example")`可以直接在Servlet类上声明URL映射。 2. **异步处理**:...

    servlet3.0.jar下载

    1. **注解驱动的配置**:在Servlet 3.0中,开发者可以使用注解(如`@WebServlet`, `@WebFilter`, `@WebListener`)来声明和配置Servlet、Filter和Listener,而不再需要在web.xml中进行繁琐的手动配置。这使得部署...

    servlet 3.0 jar 包综合下载

    例如,可以使用`@WebServlet`、`@WebFilter`和`@WebListener`注解直接在类上声明Servlet、Filter和监听器,无需在XML中进行繁琐的手动配置。 2. **异步处理**:Servlet 3.0支持异步处理,允许Servlet在处理请求时...

    servlet3.0.zip

    - **注解驱动的配置**:在Servlet 3.0中,可以通过在类或方法上使用注解(如`@WebServlet`,`@WebFilter`,`@WebListener`)来代替XML配置文件,简化部署描述符(web.xml)。 - **异步处理**:Servlet 3.0引入了...

    Servlet 3.0jar包和source包

    而Servlet 3.0允许使用注解(如`@WebServlet`,`@WebFilter`)直接在类上声明,简化了配置过程。 2. **异步处理**:Servlet 3.0引入了异步处理能力,允许Servlet在处理请求时启动一个后台线程,从而提高服务器性能...

    servlet3.0 jar包和doc

    例如,你可以使用`@WebServlet`、`@WebFilter`和`@WebListener`来定义它们。 2. **异步处理**:Servlet3.0支持异步处理,允许Servlet在接收到请求后启动一个后台线程进行处理,而主线程可以立即返回,提高了服务器...

    Servlet3.0新特性解析

    而在Servlet3.0中,我们可以通过`@WebFilter`注解来直接定义过滤器,指定其过滤的URL模式、DispatcherType等。这样,过滤器的配置就更加灵活和直观。 下面是一个使用注解声明的过滤器示例: ```java @WebFilter...

    maven servlet 3.0 eclipse config video

    1. **Servlet 3.0特性**: Servlet 3.0引入了注解配置,可以直接在Servlet类上使用`@WebServlet`注解声明URL映射,不再需要web.xml配置文件。 2. **异步处理**: Servlet 3.0允许开发者编写异步Servlet,通过`...

    servlet3.0

    在Servlet 3.0中,开发者可以通过注解(@WebServlet、@WebFilter、@WebListener)来声明Servlet、Filter和Listener,无需再在web.xml中进行繁琐的XML配置。这简化了部署描述符的编写,提高了代码的可读性和可维护性。...

    servlet 3.0新增功能详解

    新增的注解包括但不限于 `@WebServlet`、`@WebFilter` 和 `@WebListener`。这些注解可以用来指定 Servlet 的 URL 模式、过滤器的应用范围以及监听器的类型等。例如,使用 `@WebServlet` 注解来声明一个 Servlet 可以...

    servlet3.0 规范pdf 包含javadoc

    例如,`@WebServlet`、`@WebFilter`和`@WebListener`注解分别用于声明Servlet、Filter和Listener。 3. **生命周期回调方法**:Servlet 3.0提供了新的生命周期回调方法,如`init(ServletConfig config)`被`@...

    Servlet3.0 Demo

    Servlet3.0引入了注解配置,允许开发者无需在web.xml文件中进行繁琐的配置,可以直接在Servlet类上使用`@WebServlet`注解来声明和映射Servlet。例如: ```java @WebServlet("/hello") public class ...

    Servlet 3.0 - Apache Tomcat 7.0.61

    例如,`@WebServlet`、`@WebFilter`和`@WebListener`可以直接在类上声明,简化了部署过程。 2. 异步处理:Servlet 3.0引入了异步处理能力,允许Servlet在处理请求时启动一个新的线程,释放Servlet容器的线程资源,...

    servlet3.0的学习(二)

    过滤器在Servlet 3.0中也得到了加强,我们可以使用`@WebFilter`注解来声明过滤器,同时可以通过`@FilterMapping`来指定过滤器的URL模式。过滤器链的控制也更加灵活,可以实现动态过滤器的注册和执行顺序的控制。 ...

    Servlet3.0 新特性

    Servlet3.0引入了注解支持,允许开发者直接在类上声明这些组件,例如`@WebServlet`、`@WebFilter`和`@WebListener`,简化了部署描述符的编写。 2. **异步处理**: 一个显著的新特性是支持异步Servlet。通过实现`...

    Jsp/Servlet3.0 ppt和代码

    【标题】"Jsp/Servlet3.0 ppt和代码"涉及的是Java服务器页面(JSP)和Servlet 3.0版本的关键技术。JSP是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,从而实现服务器端的动态内容生成。而Servlet是...

    servlet3.0文档html

    1. **注解配置**:Servlet 3.0引入了注解配置,允许开发者直接在类或方法上使用注解(@WebServlet, @WebFilter, @WebListener)来声明Servlet、Filter和Listener,不再需要web.xml文件进行硬编码。这大大简化了部署...

    servlet3.0相关的包

    Servlet3.0是Java Web开发中的一个重要里程碑,它在Servlet2.5的基础上引入了许多新特性,极大地提高了开发效率和灵活性。在这个"Servlet3.0相关的包"中,包含了以下几个关键组件: 1. **Servlet**: 这是Java ...

    servlet3.0规范

    在Servlet 3.0中,开发者可以使用注解(@WebServlet、@WebFilter、@WebListener)来声明Servlet、Filter和监听器,而无需在web.xml中进行繁琐的XML配置。这大大减少了部署描述符的复杂性,使得代码更易读、更易于维护...

Global site tag (gtag.js) - Google Analytics