各位老大,写了一个servlet,但我没有请求他也会不停的执行doget方法,请教中……
代码:web.xml
<servlet>
<servlet-name>TestServer</servlet-name>
<servlet-class>com.straw.frame.system.servlet.ReportValid</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TestServer</servlet-name>
<url-pattern>/TestServer</url-pattern>
</servlet-mapping>
servlet:
public class ReportValid extends HttpServlet {
public ReportValid() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("测试成功2");
super.doGet(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("测试成功3");
super.doPost(request, response);
} public void init() throws ServletException {
super.init();
}
}
异常点:tomcat一启动后后台就不停的打印"测试成功2";servlet
代码:web.xml
<servlet>
<servlet-name>TestServer</servlet-name>
<servlet-class>com.straw.frame.system.servlet.ReportValid</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TestServer</servlet-name>
<url-pattern>/TestServer</url-pattern>
</servlet-mapping>
servlet:
public class ReportValid extends HttpServlet {
public ReportValid() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("测试成功2");
super.doGet(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("测试成功3");
super.doPost(request, response);
} public void init() throws ServletException {
super.init();
}
}
异常点:tomcat一启动后后台就不停的打印"测试成功2";servlet
throws ServletException, IOException {
System.out.println("测试成功2");
super.doGet(request, response);
}貌似这里就是无限循环。
从init方法开始往下跳F6一步一步的跳看过程
web.xml 中此标签的含义如下
1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。2)它的值必须是一个整数,表示servlet应该被载入的顺序2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。5)当值相同时,容器就会自己选择顺序来加载。所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。