一、Servlet的生命周期
(1)客户端请求到达服务端,服务端加载 Servlet 类到内存,并调用init()方法初始化该 Servlet;
(2)Servlet 调用 service() 方法来处理客户端不同的请求方式。
(3)Servlet 销毁前调用 destroy() 方法。
(4)Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
二、forward 和redirect的区别
(1)
forward 是服务器行为,请求转发,服务器直接访问目标地址的URL,并将读取内容发给浏览器,浏览器地址栏不变
redirect 是客户端行为,重定向,服务器根据逻辑发送一个状态码给浏览器,让浏览器访问一个新的URL,浏览器地址栏改变
(2)
forward效率高,客户端请求——>服务器内部转发并返回目标资源(相同URL),浏览器请求1次
redirect效率低,客户端请求——>服务器返回状态码——>客户端再次请求——>服务器返回目标资源(不同URL),浏览器请求2次
三、页面间对象传递的方法
(1)request,session,application,cookie等
(2)request,session,application 通过对象调用对应的getAttribute() 和 setAttribute()方法进行读写
(3)cookie对象将数据读写道浏览器cookie文件中
四、JSP和Servlet有哪些相同点和不同点?
相同点:
JSP本质是Servlet,JSP编译后生成Servlet类
不同点:
(1)JSP是Java+HTML混合在.jsp文件,Servlet是.java文件
(2)JSP关注视图表达,Servlet关注逻辑控制
五、四种会话跟踪技术
(1)四种会话的作用域是Servlets、JSP 页面
(2)
page,页面相关的对象和属性。范围是当前页面(Servlet 类或 JSP编译后的Servlet类)
request,客户机请求相关的对象和属性。请求可跨越多个页面
session,客户机用户体验相关的对象和属性。会话跨越多个客户机请求
application,整个 Web 应用程序相关的对象和属性。可跨越整个 Web 应用程序,包括多个页面、多个请求、多个会话的一个全局作用域