过滤器
一.介绍
主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理
二.使用过滤流程
过滤器对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后过滤器再对服务器响应进行后处理。在一个web应用中,可以开发编写多个过滤器,这些过滤器组合起来称之为一个过滤器链
三.代码展示
package Servlet;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter("/*")
public class EncodingFiter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//基于HTTP
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
//设置编码格式
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//放行资源
filterChain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
监听器
一.介绍
web监听器是servlet中一种特殊的类,能帮助开发者监听web中特定的事件,比如ServletContext,HttpSession,ServletRequest的创建和销毁;变量的创建,销毁和修改等。可以在某些动作前后增加处理,实现监控。
二.实现
1.监听生命周期:
ServletRequestListener
HttpSessionListener
ServletContextListener
2.监听值的变化
ServletRequestAttributeListener
HttpSessionAttributeListener
ServletContextAttributeListener
3.针对session中的对象
监听session中的java对象(javaBean),是javaBean直接实现监听器的接口
三.代码展示
package Servlet;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/*
监听HttpSession的说明周期
*/
@WebListener
public class Listener01 implements HttpSessionListener {
/**
* Session被创建时触发
* @param se
*/
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("Session被创建了");
}
/**
* session被销毁时触发
* @param se
*/
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("Session被销毁了");
}
}