注意: 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) { //监听到了对象的销毁 } }