1.JVM的内存中,方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程共享的。
2.doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的。
3.Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。
(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet
(2)创建:通过调用servlet构造函数创建一个servlet对象
(3)初始化:调用init方法初始化
(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求
(5)卸载:调用destroy方法让servlet自己释放其占用的资源
容器加载完成实例化,之后进行初始化init()
4.servlet API中的forward以及redirect()的区别
forward是服务器端的转向也就是请求转发而redirect是客户端的跳转也就是重定向。
forward是服务器请求资源,服务器直接访问目标地址的URL,将URL的资源读取出来,浏览器的地址栏不会改变。
redirect是服务端根据逻辑发送状态码,相当于客户端向服务端发送两次request,同时接受两次应答,浏览器的地址栏会发生变化。
forward的执行效率高.
redirect的执行效率低.
5.java中的try,catch,finally,的执行顺序,以及工作原理。
1、finally中的代码总会被执行。
2、当try、catch中有return时,也会执行finally。return的时候,要注意返回值的类型,是否受到finally中代码的影响。
3、finally中有return时,会直接在finally中退出,导致try、catch中的return失效。