public class OneServlet extends HttpServlet { private static final long serialVersionUID = 1L; private String name;//加入的私有变量 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { name=request.getParameter("name"); Thread.sleep(60*60);// response.getWriter().write("this is:"+name); } catch (InterruptedException e) { e.printStackTrace(); } } }
当在浏览器同时提交“http://localhost:8080/day08_3/oneServlet?name=jack”
和”http://localhost:8080/day08_3/oneServlet?name=rose“为什么只会显示一个结果
1、因为Servlet 是单例,因此所有请求都共享着一个实例;
2、所有Servlet的实例变量name也是共享的,而且是最后一个请求的值覆盖之前的值。
楼上的龙年哥已经给出正解了。。name这种变量 放到方法内部就好了。。
是单例的楼上正解...