本文介绍Servlet JSP线程,Servlet规范已经声明Servlet不是线程安全的,所以在开发Servlet的时候要注要这个问题,JSP的本质是Servlet,所有只要明白了Servlet的安全问题,JSP的安全问题应该很容易理解。

编写Servlet JSP的时分,Servlet JSP线程安全问题很简略被疏忽,假如忽视了这个问题,你的程序就存在潜在的危险。

Servlet JSP线程学习(servlet 多线程)  JSP线程 第1张

1.Servlet的生命周期

Servlet的生命周期是由Web容器担任的,当客户端***次恳求Servlet时,容器担任初始化Servlet,也便是实例化这个Servlet类。今后这个实例就担任客户端的恳求,一般不会再实例化其他Servlet类,也便是有多个线程在运用这个实例。Servlet之所以比CGI功率高便是由于Servlet是多线程的。假如该Servlet被声明为单线程模型的话,容器就会保护一个实例池,那么将存在多个实例。

2.Servlet的线程安全

Servlet标准现已声明Servlet不是线程安全的,所以在开发Servlet的时分要注要这个问题。这儿以一个实际的模型来阐明问题,先界说一个Servlet类,再界说一个SmulateMultiThread类和WebContainer类。

  1. importjavax.servlet.http.HttpServlet;
  2. importjavax.servlet.ServletException;
  3. importjavax.servlet.http.HttpServletRequest;
  4. importjavax.servlet.http.HttpServletResponse;
  5. importjava.io.IOException;
  6. //该类模仿多线程Servlet的状况
  7. publicclassSmulateMultiThreadimplementsRunnable{publicSmulateMultiThread(){
  8. }
  9. publicstaticvoidmain(String[]args){
  10. //处理100个恳求for(inti=0;i
转载请说明出处
知优网 » Servlet JSP线程学习(servlet 多线程)

发表评论

您需要后才能发表评论