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(); } }