1.为什么GenericServlet在init(ServletConfig config)基础上增加了一个init()方法?
init()方法被GenericServlet.init(ServletConfig config)方法调用。
init()方法方便了开发人员定制Servlet的初始化,而无须去维护ServletConfig对象的存储工作。
重写GenericServlet.init(ServletConfig config)必须要显示的调用super.init(config)方法。
2.ServletContext.getContect(java.lang.String uripath)的作用是什么?
返回同一Server中指定的path对应的ServletContext对象,通过该对象可以实现与Server中的其他Context打交道。
uripath必须是以"/"开始(该路径的含义是相对于整个Servlet文档的根路径,而不是当前ServletContext的根路径)。
3.Servlet生命周期是什么?
一般的Servlet(GenericServlet,即与协议无关的Servlet)的生命周期:init() --> GenericServlet.service(ServletRequest req, ServletResponse res) --> destroy.
HttpServlet的生命周期: init() --> GenericServlet.service(ServletRequest req, ServletResponse res)---> service(HttpServletRequest req, HttpServletResponse resp) --> doXXXX()-->destroy.
4.有没有必要重写GenericServlet.service()方法?
对于HttpServlet来说没有必要。只需要重写它的doXXXX()方法就可以了。HttpServlet中service()方法会自动的根据用户请求类型把请求转发给相应的doXXXX()方法(例如doGet()方法)。
5.ServletRequest.getReader()和ServletRequest.getInputStream()如何使用?
注意两个方法不能同时使用。
6.ServletRequest.getRealPath(String path)方法已经不推荐使用。
请使用ServletContext.getRealPath(String path)方法。
7.ServletResponse缺省的字符集(charset)是什么?
ServletResponse缺省的字符集(charset)是ISO-8859-1,可以通过setContentType(java.lang.String)方法改变新的字符集。
例如:setContentType("text/html; charset=Shift_JIS").
关于字符集信息,可以浏览RFC 2045
8.HttpServletRequest.getRequestURI()和HttpServletRequest.getRequestURL()区别是什么?
request.getRequestURI() 返回值类似:/xuejava/requestdemo.jsp
request.getRequestURL() 返回值类似:http://localhost:8080/xuejava/requestdemo.jsp
9.HttpServletRequest.encodeURL()和HttpServletRequest.encodeRedirectURL(()区别是什么?为什么要有两个不同的方法呢?
当用URL-rewriting方式来管理Session的时候,需要用到以上的两个方法。
两个方法的不同点是:两个方法确定是否需要包含session ID的逻辑不同。
在调用HttpServletResponse.sendRedirect前,应该先调用encodeRedirectURL()方法,否则可能会丢失Sesssion信息。 ...
10.如何使你的Servlet或者JSP实现Single Thread Model?
对于Servlet实现javax.single.SingleThreadModel接口。
对于JSP,在Page Directive中写如下的语句<%@ page isThreadSafe="false" %>
11.如何把某一个JSP Page定义成为Error Page?为什么要这样做?
实现方法: <%@ page isErrorPage="true" %>
为什么? 因为需要获取Exception 对象(缺省情况下,在JSP Page中是不能直接使用“隐含对象” exception的)。
12.JSP Page的执行顺序是如何的?
JSP Page的执行顺序如下:
JSP Page Translation. JSP Page --> Servlet source code.
JSP Page Compilation. Servlet source code --> Servlet class.
Load Class(First time or the server restarted)
Create instance(可能会很多次,如果JSP Page中声明了<%@ page isThreadSafe="false" %>)
Call jspInit method(一般的JSP Page都没有重写这个方法,重写需要在声明语句段中)。
Call _jspService method(类似与一般HttpServlet的doGet和doPost方法,但是可以同时用来处理Post和Getq请求)。
Call jspDestroy method(Server在卸载Servet的时候,例如当Servlet很久没有使用的情况)。
13.JSP Page中有哪些隐含对象(Implicity Object)?各自的类型和作用是什么?
request --
reponse --
session --
application --
out --
page --
pagecontext --
exception -- 只有在当前JSP Page为Error Page的时候才有效。
config --
14.<jsp:include page="/foo/foo.jsp" %> 和 <@ include file="/foo/foo.jsp" %>的区别是什么?
<jsp:include ... -- request time.
<@ include ... -- Page translation time.
15.Servlets/JSP Container(Engine)有几种运行方式?
Standalone
Tomcat standalone mode
In-process
Tomcat running inside Apache Web Server.
Out-of-process
Apache + mod_jk + Tomcat
16.Servlet,Servlet开发人员,Servlet API, Servlet Container的关系是什么?
Servlet,Servlet开发人员 --->Servlet API --> Servlet Container
17.The parts of an HTTP message
Message part Description
The initial line: Specifies the purpose of the request or response message
例子:GET /reports/sales/index.html HTTP/1.0
The header section:Specifies the meta-information, such as size, type, and encoding,
about the content of the message
A blank line:
An optional message body: The main content of the request or response message
下面是一个Response的例子:
HTTP/1.0 200 OK
Date: Tue, 01 Dec 2001 23:59:59 GMT
Content-Type: text/html
Content-Length: 52
<html>
<body>
<h1>Hello, John!</h1>
</body>
</html>
18.HTTP规范中定义了哪些方法?各自有什么用途?
GET
HEAD
POST
从 Http 1.1规范开始,增加了以下的方法:
PUT
OPTIONS
TRACE
DELETE
CONNECT
19.ServetRequest中为什么要定义:getContentType(),getContentLength()方法。
根据HTTP协议规范,Request 和 Response一样也有这些必不可少的内容!
所以需要首先了解 HTTP Message的概念和其内容的格式,这些东西对于Request和Reponse是一样的。
对于GET方式发送的请求,其内容类型为:null
对于POST方式发送的请求,其内容类型为:application/x-www-form-urlencoded
POST方式发送请求的内容类似于:username=xuejava.
20.RequestDispatcher.forward()和HttpServletResponse.sendRedirect()的区别是什么?
RequestDispatcher.forward()是在服务器端运行;HttpServletResponse.sendRedirect()是通过向客户浏览器发送命令来完成。
所以RequestDispatcher.forward()对于浏览器来说是“透明的”;而HttpServletResponse.sendRedirect()则不是。
另外,还要注意RequestDispatcher.forward()在调用的时候Response不能已经Commit了(Response.isCommitted())。
21.ServletContext.getRequestDispatcher(String url)和ServletRequest.getRequestDispatcher(String url)的区别是什么?为什么?
ServletContext.getRequestDispatcher(String url)中的url只能使用绝对路径;而ServletRequest.getRequestDispatcher(String url)中的url可以使用相对路径。
因为ServletRequest具有相对路径的概念;而ServletContext对象无次概念。
22.如何把请求转移到另外一个Web App中的某个地址?
ServletContext.getRequestDispatcher(String url)和ServletRequest.getRequestDispatcher(String url)只能把请求转移到同一个Web App中的地址。
如果需要把请求转移到另外一个Web App中的某个地址,可以按下面的做法:
1. 获得另外一个Web App的ServletConext对象(currentServletContext.getContext(uripath)).
2. 调用ServletContext.getRequestDispatcher(String url)方法。
分享到:
相关推荐
4.8 Servlets/JSP开发技术问答 93 4.9 Servlet小实例 97 4.5.1实例1(输出) 98 4.5.2实例2(获取表单参数) 99 4.5.3实例3(获取jsp各种参数) 101 4.10 本章小结 103 第2篇 数据库操作 103 ...
Java开发指南-Servlets和JSP篇下载 Java开发指南-Servlets和JSP篇下载
head first servlets&jsp;(第二版)并没有给你一大堆需要死记硬背的条条框框;它能将知识直接送入你的大脑。你会通过不寻常的方式同servlet和jsp打交道,可以学得更深入、更快捷。读完全书后,你会看到一个全新的...
Java开发指南--Servlets和JSP篇
软件介绍 Java开发指南--Servlets和JSP篇(PDG)
Java开发指南-Servlets和JSP篇(PDG) 注意:pdg格式
JSP、Servlets与MySQL开发指南.rar
Servlets和JSP开发原则.pdf
下载积分是CSDN默认的,我没有选择的权力,啊啊啊 Head First Servlets and JSP 中文版 第2版 PDF电子书下载 带书签目录 完整版
Bill Brogden的Java Developer's Guide to Servlets and JSP,翻译成汉语了,电子书格式,内容全面,Servlets API和 JSP API例子实用,很好的参考资料。
Head First Servlets and JSP(中文版) 第三部分(共三部分) 在我的资源下可找到其他两部部分 目录 引子 1 为什么使用Servlets&JSP;:前言与概述 2 Web应用体系结构:高层概述 3 MVC迷你教程:MVC实战 4 ...
Head First Servlets&JSP;-第2版-高清扫描版-带详细书签 高清扫描版,书签比较详细,和目录一样
个人的Head First Servlets & JSP (SCWCD)读书及学习笔记
了解一些servlet和jsp的开发原则,可以为成为一个懂得开发规范的程序员做准备。
Head First Servlets and JSP PDF
Head First Servlets and JSP(中文版) 第二部分(共三部分) 在我的资源下可找到其他两部部分 目录 引子 1 为什么使用Servlets&JSP;:前言与概述 2 Web应用体系结构:高层概述 3 MVC迷你教程:MVC实战 4 ...
深入浅出Servlets&JSP,感兴趣的人看一下吧
你将能很好地掌握Servlet和JSP,顺利通过Sun认证Web组件开发人 员(SCWCD)考试。也许你并不在乎考试,而是要在下一个项目里实际使用Servlet和JSP。你要对付最后期限,而且时间不多了。此时要选精心研读一本书而成为...
Head First Servlets and JSP, 2nd Edition 英文版 第2版