javaweb-Filter-listener过滤器与监听器

这里对Javaweb三大组件  Servelet  Filter Listener 的Filter Listener进行学习

即过滤器 与监听器

过滤器:

当web浏览器向服务器发送请求时就可以对请求进行拦截与增强

这里直接给出过滤器的代码 

package Filter;

import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.HttpServlet;
import java.io.IOException;

@WebFilter(filterName = "Filterok",urlPatterns = "/*",dispatcherTypes =DispatcherType.INCLUDE)
//这里通过注解对 过滤器名字和  要拦截的页面进行设置还有具体的拦截方式
//dispactcherTypes 就是对具体方式设置  默认request 直接请求  或者forwad请求转发
//根据设置的方式进行具体的拦截
// /*就是对所有页面  也可以具体文件 /index.jsp 或者具体类型的文件/*.jsp
//这里还有个对请求方式的拦截  
//可以根据具体的情况进行拦截
public class Filterok implements Filter {
    public void init(FilterConfig config) throws ServletException {
        System.out.println("过滤器初始化");
//生命周期 :init 初始化  
    }

    public void destroy() {
//销毁过滤器
        System.out.println("过滤器销毁");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
//具体的拦截
//这里可以将servelet的子类httpserveletrequest进行强转  然后进行拦截设置
       System.out.println("文件编码修改为utf-8");
//下面的语句就是放行的意思 拦截之后就可以放行 让用户访问资源
//没有chain放行的话  就无法访问
        chain.doFilter(request,response);
    }
}

监听器:

监听器

主要是可以监听session  serveletcontent监听servelet创建 erveletrequest监听请求

下面给出例子 监听session会话  

利用监听也可以实现在线用户统计具体的后期会补充这里做个了解

package listener;


import javax.servlet.http.*;
import javax.servlet.annotation.*;

@WebListener
//注解后面不用跟其他参数 因为监听的是具体对象
public class sesslistener implements  HttpSessionListener //具体监听根据自己的需求 设置接口
{

    public sesslistener() {
    }

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        /* Session is created. */
        System.out.println("session被创建");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        /* Session is destroyed. */
        System.out.println("session销毁了");
    }


}

你可能感兴趣的:(JAVAWEB,servlet,java,Filter)