请问基于ServletContext的RequestDispatcher为什么需要synchronized

我在看《Servlet与JSP核心编程》时,文中在介绍基于ServletContext的RequestDispatcher的时候需要同步,我一直没有想明白什么场景有问题,为什么在this上同步。相关代码如下:
synchronized{
  ValueObject value = new valueObject();
  getServletContext().setAttribute("key", value);
  RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Somepage.jsp");
  dispatcher.forward(request, response);
}

作者: greencacti   发布时间: 2011-06-14

这句不是在读文件吧,一个请求一个线程的话,有可能多个请求同时要转发,而/WEB-INF/Somepage.jsp只能同时被一个线程访问。

作者: trocp   发布时间: 2011-06-15