JavaWeb部分面试题一1
说出Servlet的生命周期,并说出Servlet和CGI的区别
Web容器加载servlet并将其实例化后,servlet生命周期开始,容器运行其init措施进行servlet的初始化,祈求抵达时运行其service措施,service措施自动派遣运行于祈求对应的doXXX措施(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy措施
与CGI的区别在与servlet处在服务器进程中,它通过多线程方式运行其service措施,一种实例可以服务于多种祈求,并且其实例一般不会销毁,而CGI对每个祈求都产生新的进程,服务完毕后就销毁,因此效率上低于servlet
forward和redirect的区别
forward是容器中控制权的转向,是服务器祈求资源,服务器直接访问目的地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器主线不懂得服务器发送的内容是从哪儿来的,因此它的地址栏中还是本来的地址
redirect就是服务器端根据逻辑,发送一种状态码,告诉浏览器重新去祈求那个地址,一般来说浏览器会用刚刚祈求的所有参数重新祈求,因此session,request参数都可以获取,并且从浏览器的地址栏中可以看到跳转后的链接地址
前者愈加高效,在前者可以满足需要时,尽量使用forward()措施,也有助于隐藏实际的链接;在有些状况下,例如需要跳转到一种其他服务器上的资源,则必须使用sendRedirect()措施
JSP中动态include与静态include的区别
动态include用jsp:include动作实现它总是会检查所包括文献中的变化,合用于包括动态页面,并且可以带参数;静态include用include伪码实现,它不会检查所含文献的变化,合用于包括静态页面4
JSP的有哪些内置对象,作