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() {
}
}