今天无意之间看到了一个注解,这个注解就是@WebServlet,@WebServlet 用于将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 vlaue 或者urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值)完成了一个使用注解描述的Servlet程序开发。
1.@WebSerlvet注解常用属性:
2.开发第一个案例
2.1开发环境MyEclipse+Tomact
1.创建web项目这里需要注意的就是创建web项目的时候选择JavaEE6
2.创建Servlet
package cn.servlet; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 属性name用了描述servlet的 * Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义 * 属性urlPatterns定义访问的url * loadOnStartup=1容器初始化就执行 * @author hyj * */ @WebServlet(name="userservlet",urlPatterns="/userservlet",loadOnStartup=1,initParams={@WebInitParam(name="username",value="张三")}) public class UserServlet extends HttpServlet { @Override public void init(ServletConfig config) throws ServletException { //获取初始值username System.out.println(config.getInitParameter("username")); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doget方法执行"); } }
3.启动tomact进行测试
测试成功在容器初始化的时候获取初始化的username值。
load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。在这里我配置的值是1,表示在容器初始化的时候就去实例化这个servlet。
3.2试试在浏览器中请求该servlet:我们从注解中可以看到返回url是userservlet