1、Servlet的生命周期、Servlet与CGI的区别
一.Servlet 生命周期(五步)
1、加载 2、实例化 3、初始化(该容器调用init()方法,通常会申请资源) 4、处理请求(由容器调用service()方法,也就是doGet()和doPost()) 5、销毁(在释放Servlet实例之前调用destroy()方法,通常会释放资源)
二、Servlet与CGI的区别
Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI(Common Gateway Interface通用网关接口)对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。CGI不可移植,为某一特定平台编写的CGI应用只能运行于这一环境中。每一个CGI应用存在于一个由客户端请求激活的进程中,并且在请求被服务后被卸载。这种模式将引起很高的内存、CPU开销,而且在同一进程中不能服务多个客户,相对来说CGI是过时的技术。
2、Java中深度克隆和浅克隆的区别,什么是克隆
我认为深克隆就是你和你的双胞胎兄弟,你没了,你兄弟还在。
浅克隆就是你和你的影子,你没了,你的影子也没了。
克隆就是复制一个一模一样的对象出来
3、spring容器与spring mvc容器加载顺序