關(guān)于servlet的@WebServlet注解的使用
一、Servlet的傳統(tǒng)配置方式
web.xml中的servlet配置
<servlet> <servlet-name>Product</servlet-name> <servlet-class>zhuangzi.com.Product</servlet-class> </servlet> <servlet-mapping> <servlet-name>Product</servlet-name> <url-pattern>/Product</url-pattern> </servlet-mapping>
發(fā)一個(gè)Servlet,都要在web.xml中配置Servlet才能夠使用,就比較麻煩。所以Servlet3.0之后提供了注解(annotation)
二、使用注解方式配置Servlet
@WebServlet注解用于標(biāo)注在一個(gè)繼承了HttpServlet類(lèi)之上,屬于類(lèi)級(jí)別的注解。
用法形如:
@WebServlet("/RegistServlet")
public class RegistServlet extends HttpServlet{
//處理 GET 方法請(qǐng)求的方法
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
//處理POST方法請(qǐng)求的方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}
該注解的作用等價(jià)于 在web.xml中配置的該servlet的元素中的配置
三、@WebServlet注解屬性
(1).loadOnStartup屬性:標(biāo)記容器是否在啟動(dòng)應(yīng)用時(shí)就加載Servlet,默認(rèn)不配置或數(shù)值為負(fù)數(shù)時(shí)表示客戶端第一次請(qǐng)求Servlet時(shí)再加載;0或正數(shù)表示啟動(dòng)應(yīng)用就加載,正數(shù)情況下,數(shù)值越小,加載該Servlet的優(yōu)先級(jí)越高;
(2).name屬性:可以指定也可以不指定,通過(guò)getServletName()可以獲取到,若不指定,則為Servlet的完整類(lèi)名
(3).urlPatterns/value屬性: String[]類(lèi)型,可以配置多個(gè)映射,如:urlPatterns={"/user/test", "/user/example"}
(4).urlPatterns的常用規(guī)則:
/*或者/:攔截所
*.do:攔截指定后綴
/user/test:攔截路徑
/user/*.do、/*.do、test*.do都是非法的,啟動(dòng)時(shí)候會(huì)報(bào)錯(cuò)