Filter
1.过滤器(拦截器),如生活中净水器.....
2.在web中的过滤器,当访问服务器的资源的时候,过滤器可以将对应的请求地址
进行拦截下来,来进行完成一些特殊的功能
3.一般情况下,如功能,登陆验证,字符编码格式的统一.....
入门:
public class Test_Filter01 implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("初始化的方法--只会进行执行一次");
}
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("执行业务逻辑的"); //进行放行的,不进行过滤的 filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { System.out.println("进行销毁的"); } } 之前的版本 需要在web.xml文件进行配置 <filter> <filter-name>myIsFilter</filter-name> <filter-class>com.java.filter.Test_Filter01</filter-class> </filter> <filter-mapping> <filter-name>myIsFilter</filter-name> <!--拦截所有的--> <url-pattern>/*</url-pattern> </filter-mapping>
现在都是使用注解版的,
@WebFilter("/*")
public class Test_Filter01 implements Filter{
} 参数的描述 * public enum DispatcherType { * FORWARD, 转发访问的资源 * INCLUDE, 包含了访问资源 * REQUEST, 默认的值,浏览器直接进行请求的资源 * ASYNC, 异步访问的资源 * ERROR; 错误访问的资源 * 可以在该注解中进行配置多个 * dispatcherTypes ={DispatcherType.ASYNC,DispatcherType.ERROR} --------------------------
监听器
对某个事件进行监听
需要3个必要的机制
事件 事件源(事件发生的地方) 监听器(创建的一个监听对象)
入门
创建一个类实现监听器
public class Test_Listtener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext对象,创建后会进行调用的方法,初始化监听器");
} @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { System.out.println("ServletContext对象,被销毁之后,会调动的方法"); } }
在来进行配置,之前的方式
web.xml中
<listener>
<listener-class>com.java.listener.Test_Listtener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/appliactionContext.xml</param-value>
</context-param>
可以使用注解的方式类进行配置
@WebListener
public class Test_Listtener implements ServletContextListener {