可以在一个web程序中使用@WebServlet注解定义一个servlet组件。这个注解使用在类上并包含servlet定义的元数据。被注解的servlet必须指定一个url规则。这是由urlPatterns 或value属性完成的。其他属性都是可选的,有默认设置。当只有唯一一个url匹配规则时使用value属性;其他情况下,当其他属性使用时使用urlPatterns属性。
使用 @WebServlet注解的类必须继承自javax.servlet.http.HttpServlet。例如,下面的代码片段定义了一个映射到请求 /report
的Servlet。
import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @WebServlet("/report") public class MoodServlet extends HttpServlet { ...
web容器在加载并实例化servlet后,开始初始化servlet,这在接收来自客户端的web请求之前。可以自定义这个过程来读取配置数据,初始化资源,执行其他一次性活动;你还可以重写Servlet接口的init方法,或者定义@WebServlet注解的initParams 属性。initParams 属性包含了一个WebInitParam注解。如果没有完成初始化流程,Servlet将抛出UnavailableException异常。
使用初始化参数提供的数据只能是特定的Servlet。相比之下,上下文参数提供数据可供容器内的所有组件使用。