注意:

1.注解后面不加分号" ;"

2.所示例的注解只是基本用法,它还有其它参数,如需要需百度下用法





路径匹配格式解释:

1.绝对文件:/test.jsp

2.相对文件:/test/*

3.类型文件:*.jsp

4.任意文件:/*



Servlet:(用于接收请求处理类:get,post等)

@WebServlet("/*") //正则,符号"/*"表示所有请求,也可以指定请求路径
@WebServlet("/url") //单页
@WebServlet(value={"/url1","/url2"}) //多页

示例:

文件名:Hello.java

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hello") //显示声明,前端访问地址,如:localhost/hello
public class Hello extends HttpServlet { //这个类名经测试,跟前端访问无关,根据类的作用取,但必须跟文件名同名
	private static final long serialVersionUID = 1L;
 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}





Filter:(过滤器,在请求类之前,先过滤信息,决定是否放行,或处理)

@WebFilter("/*") //正则,符号"/*"表示所有请求,也可以指定请求路径
@WebFilter("/url") //单页
@WebFilter(value={"/url1","url2"}) //多页

参数:拦截类型
@WebFilter(
	value = {"/*"},
	dispatcherTypes = {
		DispatcherType.REQUEST,	//请求,默认
		DispatcherType.INCLUDE,	//包含
		DispatcherType.FORWARD,	//转发
		DispatcherType.ASYNC,	//异步
		DispatcherType.ERROR})	//错误
	



示例:

文件名:HelloFilter.java

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.DispatcherType;  
import javax.servlet.annotation.WebFilter;  
import java.io.IOException;    


@WebFilter("/*")
public class HelloFilter implements Filter {      
	
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		//初始化,服务器启动时执行
	}        

	@Override      
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		//注意:ServletRequest需要转化类
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse res = (HttpServletResponse)response
		
		//客户端请求 @WebFilter("/*") 指定路径时拦截
		//这里处理请求参数
		
		chain.doFilter(request, response); //没问题,执行正常请求路径类
	}       

	@Override      
	public void destroy() {
		// 销毁,服务器关闭时执行
	}  
}







Listener:(监听器,用于监听下列类事件)

ServletContext:
ServletContextListener
	初始化时:void contextInitialized(ServletContextEvent event)
   销毁时:void contextDestroyed(ServletContextEvent event)
ServletContextAttributeListener
	添加属性时:void attributeAdded(ServletContextAttributeEvent event)
	替换属性时:void attributeReplaced(ServletContextAttributeEvent event)
	删除属性时:void attributeRemoved(ServletContextAttributeEvent event)


HttpSession:
HttpSessionListener
	初始化时:void sessionCreated(HttpSessionEvent event)
	销毁时:void sessionDestroyed(HttpSessionEvent event)
HttpSessioniAttributeListener
	添加属性时:void attributeAdded(HttpSessioniAttributeEvent event)
	替换属性时:void attributeReplaced(HttpSessioniAttributeEvent event)
	删除属性时:void attributeRemoved(HttpSessioniAttributeEvent event)

ServletRequest:
ServletRequestListener
	初始化时:void requestInitialized(ServletRequestEvent event)          
	销毁时:	void requestDestroyed(ServletRequestEvent event)
ServletRequestAttributeListener
	添加属性时: void attributeAdded(ServletRequestAttributeEvent event)
	替换属性时: void attributeReplaced(ServletRequestAttributeEvent event)
	删除属性时: void attributeRemoved(ServletRequestAttributeEvent event)


HttpSessionBinding:
HttpSessionBindingListener
HttpSessionActivationListener


示例:监听ServletContextListener

package listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;  
import javax.servlet.ServletContextListener;  
import javax.servlet.annotation.WebListener;    

@WebListener    //监听注解   
public class myServletContextListener implements ServletContextListener {         

	@Override      
	public void contextInitialized(ServletContextEvent event) {
		// 监听到了对象的创建
		
		// 获取对象
		ServletContext servletContext = servletContextEvent.getServletContext();
		System.out.println(servletContext);
	}

	@Override
	public void contextDestroyed(ServletContextEvent event) {
		//监听到了对象的销毁
	}  
}