Servlet3.0 filter和Listener注解

Filter注解

package com.javaweb.servlet3;

import java.io.IOException;

import javax.servlet.DispatcherType;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

//@WebFilter("/*")指定拦截的全路径
//@WebFilter(servletNames="Some-Servlet")指定拦截特定的一个的servlet
@WebFilter(value="/*",dispatcherTypes=DispatcherType.FORWARD)//指定拦截全路径中请求转发为forward方式
public class SomeFilter implements Filter {
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		
		System.out.println("-----------------");
		chain.doFilter(request, response);
		System.out.println("-----------------");
		
	}

	@Override
	public void destroy() {
		
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		
	}
}

Listener

使用@WebListener注解即可。

package com.javaweb.listener;

import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
@WebListener
public class MyRequestAttrbuteListener implements
		ServletRequestAttributeListener {

	@Override
	public void attributeAdded(ServletRequestAttributeEvent arg0) {
		System.out.println("向request中添加属性"+arg0.getName()+"="+arg0.getValue());

	}

	@Override
	public void attributeRemoved(ServletRequestAttributeEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("从request中删除属性"+arg0.getName()+"="+arg0.getValue());

	}

	@Override
	public void attributeReplaced(ServletRequestAttributeEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("重置request中的属性"+arg0.getName()+"="+arg0.getValue());

	}

}

注解和web.xml同时存在

1.servlet
如果url-pattern相同,则无法启动web应用。否则则是有两个路径访问servlet
2.filter
无论是否相同,都是以两个独立的filter出现
3.listener
都是以同一个监听器
4.metadata-complete=“boolean”
web.xml中的标签中的属性metadata-complete的取值为true或false。
ture:web.xml起作用,忽略注解。
false:默认值,表示两种注册方式同时起作用。

发布了127 篇原创文章 · 获赞 8 · 访问量 6277

猜你喜欢

转载自blog.csdn.net/OVO_LQ_Start/article/details/105072687