5
我在java应用程序中使用嵌入式码头服务器。但是doGet()方法被调用两次。它也被称为这个(method.equals(METHOD_GET))条件在httpservlet类的服务方法中的一个结果。doGet调用两次码头服务器
我试图用chrome和explorer做一个请求,但是我得到了同样的结果。
任何人都可以看到中的doGet之所以被称为两次..
public class HelloServlet extends HttpServlet{
private String greeting="Hello World";
public HelloServlet(){}
public HelloServlet(String greeting)
{
this.greeting=greeting;
System.out.println("started the server" + greeting);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("<h1>"+greeting+"</h1>");
response.getWriter().println("session=" + request.getSession(true).getId());
count = count+1;
System.out.println(count);
response.getWriter().println("count=" + count);
response.flushBuffer();
}
}
public class OneServletContext{
public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
System.out.println("about to start the servlets");
context.addServlet(new ServletHolder(new HelloServlet()),"/*");
context.addServlet(new ServletHolder(new HelloServlet("Buongiorno Mondo")),"/it/*");
context.addServlet(new ServletHolder(new HelloServlet("Bonjour le Monde")),"/fr/*");
server.start();
System.out.println("started the servlets");
server.join();
}
}
投票,因为我也有这个问题,以及使用Maven的Jetty插件移动到Tomcat,都很好。并加入favourte。 – Shahzeb