标签:doc oge 加载 -name body private ring tar document
一、在项目下创建如下包、及servlet
生成servlet如下:
@WebServlet(name="TimmerServlet" ,urlPatterns = "/showtime.do" ) public class TimmerServlet extends HttpServlet { private static final long serialVersionUID = 1L; public TimmerServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置刷新自动加载的事件间隔为 1 秒 response.setIntHeader("Refresh", 1); // 设置响应内容类型 response.setContentType("text/html"); // 获取当前的时间 Calendar now = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(now.getTime()); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
二、@WebServlet注解
在servlet3.0下,提供了WebServlet的注解,可以取代在web.xml下配置<servlet>、<servlet-mapping>的步骤。
注解源码如下:
package javax.servlet.annotation; import java.lang.annotation.Annotation; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target({ java.lang.annotation.ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface WebServlet { //指定 Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。 public abstract String name(); //该属性等价于 urlPatterns 属性。两个属性不能同时使用。 public abstract String[] value(); //指定一组 Servlet 的 URL 匹配模式。等价于 <url-pattern> 标签。 public abstract String[] urlPatterns(); //指定 Servlet 的加载顺序,等价于 <load-on-startup> 标签。 public abstract int loadOnStartup(); //指定一组 Servlet 初始化参数,等价于 <init-param> 标签。 public abstract WebInitParam[] initParams(); //声明 Servlet 是否支持异步操作模式,等价于 <async-supported> 标签。 public abstract boolean asyncSupported(); public abstract String smallIcon(); public abstract String largeIcon(); //该 Servlet 的描述信息,等价于 <description> 标签。 public abstract String description(); //该 Servlet 的显示名,通常配合工具使用,等价于 <display-name> 标签。 public abstract String displayName(); }
二、urlPatterns通配符
匹配方法只有三种,要么是路径匹配(以“/”字符开头,并以“/*”结尾),要么是扩展名匹配(以“*.”开头),要么是精确匹配,三种匹配方法不能进行组合,不要想当然使用通配符或正则规则。
如<url-pattern>/user/*.action</url-pattern>是非法的
另外注意:<url-pattern>/aa/*/bb</url-pattern>是精确匹配,合法,这里的*不是通配的含义
<servlet-mapping> <servlet-name>servlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>servlet</servlet-name> <url-pattern>/action/*</url-pattern> </servlet-mapping>
三、启动Tomcat,键入http://localhost:8080/jeb/showtime.do,可以看到每一秒钟显示一下服务器时间
二、Java Web -- 使用servlet显示服务器时间
标签:doc oge 加载 -name body private ring tar document
原文地址:http://www.cnblogs.com/Jeb-Sun/p/6670287.html