Java Web 之Filter

一、JSP是什么

JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术

JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

二、关于Filter

1、什么是Filter

它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response。

一个Filter包括:

1)、在servlet被调用之前截获;

2)、在servlet被调用之前检查servlet request;

3)、根据需要修改request头和request数据;

2、如何借助Filter实现拦截功能

编写java类实现Filter接口,并实现其doFilter方法。

在web.xml文件中对编写的filter类进行注册,并设置它所能拦截的资源

Filter接口的doFilter方法,当开发人员编写好Filter,并配置对哪个web资源进行拦截后,Web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法

3、web.xml配置各节点介绍

       
        TestFilter   
        TestFilter   
                                    
            islogin
            true
        
    
    
        TestFilter 
        /* 
        TestServlet
      

三、创建一个Filter过滤器

@WebFilter(filterName = "TestFilter")
public class TestFilter implements Filter {

    //初始化配置参数,在doFilter()方法之前被调用
    public void init(FilterConfig config) throws ServletException {

    }


    //该方法在客户端请求及服务器端回复时都将被自动调用
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
            throws ServletException, IOException {
        chain.doFilter(req, resp);
    }


    //结束过滤器,doFilter()方法完成后被调用
    public void destroy() {
    }

FilterConfig接口
用户在配置filter时,可以使用为filter配置一些初始化参数,当web容器实例化Filter对象,调用其init方法时,会把封装了filter初始化参数的filterConfig对象传递进来。因此开发人员在编写filter时,通过filterConfig对象的方法,就可获得以下内容:

String getFilterName();//得到filter的名称。 
String getInitParameter(String name);//返回在部署描述中指定名称的初始化参数的值。如果不存在返回null. 
Enumeration getInitParameterNames();//返回过滤器的所有初始化参数的名字的枚举集合。 
public ServletContext getServletContext();//返回Servlet上下文对象的引用。

你可能感兴趣的:(Java Web 之Filter)