文档标识:20140519
WEB 面试题
编 写 者:栾雪松
校 对 者:沈阳
二 0 一四年五月
Web 面试题
目录
一、 Servlet 部分 ........................................ 1
1、Servlet 的学习 ..................................... 1
2、Servlet 的生命周期 ................................. 3
3、跳转与重定向 ....................................... 3
4、ServletRequest 和 ServletContext .................... 4
5、HttpServlet ........................................ 4
6、Get 和 Post ......................................... 5
7、doGet()和 doPost() ................................. 6
8、Request 的学习 ..................................... 6
9、监听器 ............................................. 8
10、过滤器 ........................................... 10
二、 Jsp 部分 ........................................... 12
1、JSP 的语法 ........................................ 12
2、 注释 ............................................. 14
3、 JSP 的内置对象 ................................... 14
4、 Jsp 页面四大范围(四种会话跟踪技术) ............. 16
5、页面跳转 .......................................... 17
6、 Session .......................................... 17
7、 Cookie ........................................... 18
8、session 与 cookie 的区别 ........................... 19
1
Web 面试题
9、Url 的重写 ........................................ 20
10、异常处理 ......................................... 20
11、EL 有关的隐含对象 ................................ 21
12、 中文乱码 ........................................ 22
13、JSP 的缺点 ....................................... 24
14、JSP 和 Servlet 的区别 ............................. 24
三、 Xml ................................................ 26
四、 MVC ................................................ 28
2
Web 面试题
一、Servlet 部分
1、Servlet 的学习
1.1、什么是 servlet?
答:servlet 可以被认为是服务器端的 applet。servlet 被 Web 服务器加载和
执行,就如同 applet 被浏览器加载和执行一样。servlet 从客户端(通过 Web 服务
器)接收请求,执行某种作业,然后返回结果。
1.2、servlet 的主要功能和作用是什么?
答:Servlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进
行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发
送给 Servlet ,并让 Servlet 建立起服务器返回给客户机的响应。 当启动 Web
服务器或客户机第一次请求服务时,可以自动装入 Servlet 。装入后,Servlet 继
续运行直到其它客户机发出请求。 Servlet 的功能涉及范围很广。例如, Servlet
可完成如下功能:
(1) 创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML 页面。
(2) 创建可嵌入到现有 HTML 页面中的一部分 HTML 页面
(3) 与其它服务器资源(包括数据库和基于 Java 的应用程序)进行通信。
(4) 将定制的处理提供给所有服务器的标准例行程序。
1
Web 面试题
1.3、简述 servlet 的体系结构?
答:Servlet 接口
GenericServlet 通过用 Servlet 可以跨协议
HttpServlet:只适用于 http 协议
1.4、如何定义自己的 Servlet 类?
答:
1)实现Servlet接口
需重写五个方法:
(1) public void init(ServletConfig config) throws
ServletException;
(2) public ServletConfig getServletConfig();
(3) public void service(ServletRequest req, ServletResponse res)throws ServletException,
IOException;
(4) public String getServletInfo();
(5) public void destroy();
2)继承HttpServlet类
只需重写doGet()和doPost()方法
2
Web 面试题
1.6、当容器调用servlet的destory()方法的时候,servlet会马上销毁么?如果当
时这个servlet正在执行其他任务或者线程呢?
答:是的,当容器调用servlet的destory()方法的时候,servlet会马上销毁,
但是容器在调用destory()方法之前,会等servlet的service()方法结束剩余的任务。
2、Servlet的生命周期
2.1、说一说 Servlet 的生命周期?
答:servlet 有良好的生存期的定义,包括加载和实例化、初始化、处理请
求以及服务结束。这个生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy
方法表达。 Servlet 被服务器实例化后,容器运行其 init 方法,请求到达时运行
其 service 方法,service 方法自动派遣运行与请求对应的 doXXX 方法(doGet,
doPost)等,当服务器决定将实例销毁的时候调用其 destroy 方法。
3、跳转与重定向
3.1、Servlet 中 forward() 与 redirect()的区别?
答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出
转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发
3
Web 面试题
送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,
前者更加高效,在前者可以满足需要时,尽量使用 forward()方法,并且,这样
也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器
上的资源,则必须使用 sendRedirect()方法。
4、ServletRequest 和 ServletContext
4.1、用 ServletRequest 和 ServletContext 调用 ReqestDispatcher 有什么区
别?
答:在用 ServletRequest 调用 RequestDispatcher 的时候可以用相对 URL(以
网 页 文 件 位 置 所 对 应 到 目 标 文 件 位 置 对 应 关 系 , 也 就 是 相 对 路 径), 但 是
ServletContext 不行。
5、HttpServlet
5.1、请说出 httpServlet 的执行过程(doGet 方法)
答:
1
2
Init(ServletConfig config)
说明:调用 Servlet 中的初始化方法
Init()
说明:调用 HttpServlet 中的初始化方法
4
Web 面试题
3
4
5
Service(ServletRequest
request,ServletResponse
response)
说明:调用 servlet 中的 service 方法
Service(HttpServletRequest req,HttpServletResponse
response)
说明:调用 HttpServlet 中的 service 方法
doGet(HttpServletRequest
req , HttpServletResponse response)
说明:调用 HttpServlet 中的 doGet 方法
6、Get 和 Post
6.1、提交表单请求时,post 和 get 有哪些区别?
答:
1 以 Get 方 式 请求方式传输,所 带 参 数 附 加在请求URL 后直接传 给服务器,
并可以从服务器端的 QUERY_STRING 这个环 境变量中读取;
2 如果以POST 请求方式传输则参数被打包在数据包中传给服务器。
3 使用 Post 方法数据由标准的输入设备读入,使用 Get 方法,数据由 CGI(进
行交互的一种工具)变量 Query_STRING 传递给表单数据处理程序,即附加在请
求地址的后面,在浏览器的地址栏可看到 servlet 会自动将以上两种方法得到的
数据进行处理,对于两种方法 servlet 处理方法是一样的,用户只要调用
HttpServletRequest 的 getParameter()方法,给出变量名称即可取出变量的值。
5