上一篇 <<<Spring常用注解汇总
下一篇 >>>Spring原理汇总及零碎知识点
1.什么是Servlet
Servlet是运行在Web服务器或应用服务器上的中间层程序,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
2.和CGI相比的优势是什么
CGI(Common Gateway Interface,公共网关接口)功能类似,但有以下优势:
a、性能明显更好,它在web服务器地址空间内执行,没必要创建单独的进程来处理每个客户端请求。
b、它独立于平台,是java编写
c、在java安全管理器执行了一些限制,所以是可信的。
d、java类库的全部功能对Servlet来说都是可用的
3.Servlet的生命周期
Servlet 加载—>实例化—>服务—>销毁。
a、init():
在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。
b、service():
它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。
c、destroy():
仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。
4.Servlet线程是否安全
不安全,servlet走的单例,所有线程走的同一个bean。
5.DispatcherServlet与Servlet类有什么区别
DispatcherServlet其实就是一个Servlet类,无非就是包装来根据url能够映射找到我们的SpringMVC中定义的请求方法。
DispatcherServlet继承FrameworkServlet继承HttpServlet
6.Servlet与SpringMVC的区别
SpringMVC是基于Servlet封装的MVC框架,属于扩展。
springMVC 线程要改为线程安全,设置为request多例
推荐阅读:
<<<Spring原理汇总及零碎知识点
<<<Web项目的启动方式汇总
<<<SpringMVC底层无web.xml启动原理分析
<<<SpringMVC运行流程
<<<DispatcherServlet执行原理分析
<<<过滤器与拦截器的区别
<<<SpringMVC拦截器的用法
<<<SpringMVC异步实现方式
<<<@Async注解的失效之谜
<<<SpringMVC适配器类型汇总
网友评论