1.使用注解進行開發的好處:
支援注解配置。可以不需要web.xml了。
2.使用注解開發Servlet的步驟:
1)建立JavaEE項目,選擇Servlet的版本3.0以上,可以不建立web.xml
2)定義一個類,實作Servlet接口
3)複寫方法Servlet接口中的抽象方法
4)在類上使用@WebServlet注解,進行配置,例如:
@WebServlet(urlPatterns = "/demo")
@WebServlet(value = "/demo")
@WebServlet("/demo")
其中,"/demo"為資源名稱,相當于:@WebServlet("資源路徑")
WebServlet的具體定義如下:
package javax.servlet.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebServlet {
//相當于<Servlet-name>
String name() default "";
//代表urlPatterns()屬性配置,當urlPatterns的值隻有一個時,value可以省略書寫
String[] value() default {};
//相當于<url-pattern>
String[] urlPatterns() default {};
//相當于<load-on-startup>
int loadOnStartup() default -1;
WebInitParam[] initParams() default {};
boolean asyncSupported() default false;
String smallIcon() default "";
String largeIcon() default "";
String description() default "";
String displayName() default "";
}
3.具體案例
package cn.itcast.web.servlet;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/demo")
public class ServletDemo implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("Servlet3.0來了。。。");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}