请说明Sevlet 执行流程?


客户端向tomcat服务器发送http请求,包含servlet映射地址和要传递的参数

  • --》tomcat解析每一个web.xml文件,找到与之匹配的url和对应的servlet name

  • --》根据servlet name找到对应的servlet,并对这个servlet进行实例化和初始化

  • --》tomcat执行servlet实例中的方法

  • --》方法运行后把程序执行结果通过响应返回浏览器--》浏览器接收到这段代码后进行解释。

Servlet实例化的时机是什么?

对于serlvet来说,全局在tomcat中,有且之后一个唯一的对象。tomcat不会创建servlet的多个实例。

servlet在并发环境下是如何处理的?

servlet是基于单例多线程处理的并发情况。利用多线程技术提供web服务。

多线程处理的情况下,如何解决线程安全问题?

所有的线程,都共享一个servlet实例。所以我们在使用servlet时,不允许在servlet内创建,存在状态的变量和对象。因为这样会在并发访问时产生无法预期的结果。