这里对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销毁了");
}
}