一、在项目下创建如下包、及servlet
生成servlet如下:
@WebServlet(name="TimmerServlet" ,urlPatterns = "/showtime.do")public class TimmerServlet extendsHttpServlet {private static final long serialVersionUID = 1L;publicTimmerServlet() {super();
}protected voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {//设置刷新自动加载的事件间隔为 1 秒
response.setIntHeader("Refresh", 1);//设置响应内容类型
response.setContentType("text/html");//获取当前的时间
Calendar now = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
PrintWriter out=response.getWriter();
out.println(""-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("");
out.println("
A Servlet");out.println("
");out.print(now.getTime());
out.println(" ");
out.println("");
out.flush();
out.close();
}protected voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
doGet(request, response);
}
}
二、@WebServlet注解
在servlet3.0下,提供了WebServlet的注解,可以取代在web.xml下配置、的步骤。
注解源码如下:
packagejavax.servlet.annotation;importjava.lang.annotation.Annotation;importjava.lang.annotation.Documented;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;
@Target({ java.lang.annotation.ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documentedpublic @interfaceWebServlet {//指定 Servlet 的 name 属性,等价于 。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。
public abstractString name();//该属性等价于 urlPatterns 属性。两个属性不能同时使用。
public abstractString[] value();//指定一组 Servlet 的 URL 匹配模式。等价于 标签。
public abstractString[] urlPatterns();//指定 Servlet 的加载顺序,等价于 标签。
public abstract intloadOnStartup();//指定一组 Servlet 初始化参数,等价于 标签。
public abstractWebInitParam[] initParams();//声明 Servlet 是否支持异步操作模式,等价于 标签。
public abstract booleanasyncSupported();public abstractString smallIcon();public abstractString largeIcon();//该 Servlet 的描述信息,等价于 标签。
public abstractString description();//该 Servlet 的显示名,通常配合工具使用,等价于 标签。
public abstractString displayName();
}
二、urlPatterns通配符
匹配方法只有三种,要么是路径匹配(以“/”字符开头,并以“/*”结尾),要么是扩展名匹配(以“*.”开头),要么是精确匹配,三种匹配方法不能进行组合,不要想当然使用通配符或正则规则。
如/user/*.action是非法的
另外注意:/aa/*/bb是精确匹配,合法,这里的*不是通配的含义
servlet
*.do
servlet
/action/*
三、启动Tomcat,键入http://localhost:8080/jeb/showtime.do,可以看到每一秒钟显示一下服务器时间