天天看点

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

    }
}