servlet生命周期
三個重要方法
1 init()
進行資源的加載
2 service()
處理請求,根據請求方式,調用doGet或者doPost
3 destroy()
進行資源的釋放
servlet是單實例的,假如在處理請求時候,多線程訪問了servlet的成員變量,則servlet是線程不安全的。
只要保證在service()方法中訪問的都是局部變量,則servlet是線程安全的。
多線程下每個線程對局部變量都會有自己的一份copy,這樣對局部變量的修改只會影響到自己的copy而不會對別的線程產生影響
public class HelloWorldServlet extends HttpServlet { String message; private static final long serialVersionUID = 787553024399133588L; public void service(HttpServletRequest request,HttpServletResponse response) throws IOException{ message =request.getParameter("message"); PrintWriter pw = response.getWriter(); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } pw.write("<div><strong>Hello World</strong>!</div>"+message); pw.close(); } }