1.@WebListener注解
表示的就是我們之前的在xml中配置的
<listener>
<listener-class>ListenerClass</listener-class>
</listener>
下面我們只需要在我們寫好的Listener類上面加上這個@WebListener注解就OK啦
使用Listener的類必須使用下列的幾個接口
ServletContextListener ServletContextAttributeListener ServletRequestListener ServletRequestAttributeListener HttpSessionListener HttpSessionAttributeListener
例子:
package com.hotusm.web.listener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class MyHttpSessionListener implements HttpSessionListener{
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("創建session ");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("銷毀session ");
}
}
這樣,在我們啟動的時候 就會自動的幫助我們創建一個Listener了,這個注解有一個屬性,是這個listener的描述信息
2.@WebFilter 這個注解就是表示的攔截器 同樣的也是直接注解在寫好的Filter上面就ok了。
package com.hotusm.web.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@WebFilter(filterName = "filter1", urlPatterns="/*",
dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD},
initParams={@WebInitParam(name="account",value="1234"),@WebInitParam(name="hotusm",value="1234")}
)
public class MyFilter implements Filter {
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
String account = filterConfig.getInitParameter("account");
String hotusm = filterConfig.getInitParameter("hotusm");
System.out.println("account:"+account+" hotusm:"+hotusm);
}
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
注解的主要參數及其含義

3.@WebServlet 這個注解表示的就是一般的Servlet
package com.hotusm.web.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet(name = "servlet1", urlPatterns = {"/url1", "/url2","url3/*"}, loadOnStartup = 1,
initParams = {
@WebInitParam(name = "name", value="hotusm")
})
public class MyServlet extends HttpServlet {
private String name;
public MyServlet() {
System.out.println("load on startup");
}
@Override
public void init() throws ServletException {
super.init();
name= this.getInitParameter("name");
}
@Override
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
System.out.println(session);
System.out.println("name:"+name);
}
}
注解主要參數

參數和Filter差不多
4.其中在上面的注解Filter和Servlet用到的@WebInitParam 注解 表示的就是參數啦 相當於<init-param>
參數以及含義
5.@MultipartConfig 該注解主要是為了輔助 Servlet 3.0 中 HttpServletRequest 提供的對上傳文件的支持。該注解標注在 Servlet 上面,以表示該 Servlet 希望處理的請求的 MIME 類型是 multipart/form-data。另外,它還提供了若干屬性用於簡化對上傳文件的處理。具體如下:
