天天看點

Servlet3.0_基于注解開發的Servlet

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

    }
}