JavaWeb考试题考试题
1、说出Servlet的生命周期,并说出Servlet和CGI的区别【基础】答:Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其i
it方法进行Servlet的初始化,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
第37页共59页
2、Servlet的基本架构。【基础】答:publicclassServletNameexte
dsHttpServletpublicvoiddoPostHttpServletRequestrequestHttpServletRespo
serespo
sethrowsServletExceptio
IOExceptio
publicvoiddoGetHttpServletRequestrequestHttpServletRespo
serespo
sethrowsServletExceptio
IOExceptio
3、forward和redirect的区别【基础】答:forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来
f的地址。redirect就是服务端根据逻辑发送一个状态码告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以sessio
request参数都可以获取,并且从浏览器的地址栏中可以看到跳转后的链接地址。前者更加高效,在前者可以满足需要时,尽量使用forward方法,并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用se
dRedirect方法。4、JSP中动态INCLUDE与静态INCLUDE的区别?【基础】答:动态INCLUDE用jspi
clude动作实现jspi
cludepage