今天無意之間看到了一個注解,這個注解就是@WebServlet,@WebServlet 用於將一個類聲明為 Servlet,該注解將會在部署時被容器處理,容器將根據具體的屬性配置將相應的類部署為 Servlet。該注解具有下表給出的一些常用屬性(以下所有屬性均為可選屬性,但是 vlaue 或者urlPatterns 通常是必需的,且二者不能共存,如果同時指定,通常是忽略 value 的取值)完成了一個使用注解描述的Servlet程序開發。
1.@WebSerlvet注解常用屬性:
2.開發第一個案例
2.1開發環境MyEclipse+Tomact
1.創建web項目這里需要注意的就是創建web項目的時候選擇JavaEE6
2.創建Servlet
package cn.servlet; import java.io.IOException; import javax.servlet.ServletConfig; 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; /** * 屬性name用了描述servlet的 * Servlet的訪問URL是Servlet的必選屬性,可以選擇使用urlPatterns或者value定義 * 屬性urlPatterns定義訪問的url * loadOnStartup=1容器初始化就執行 * @author hyj * */ @WebServlet(name="userservlet",urlPatterns="/userservlet",loadOnStartup=1,initParams={@WebInitParam(name="username",value="張三")}) public class UserServlet extends HttpServlet { @Override public void init(ServletConfig config) throws ServletException { //獲取初始值username System.out.println(config.getInitParameter("username")); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doget方法執行"); } }
3.啟動tomact進行測試
測試成功在容器初始化的時候獲取初始化的username值。
load-on-startup元素標記容器是否在啟動的時候就加載這個servlet(實例化並調用其init()方法)。在這里我配置的值是1,表示在容器初始化的時候就去實例化這個servlet。
3.2試試在瀏覽器中請求該servlet:我們從注解中可以看到返回url是userservlet