servlet生命周期 & http & JSP九个内置对象

亚信联创面试前准备

面试题目:简述servlet的生命周期

答:

标准:

1. web服务器首先会检查是否已经装载并创建了该servlet实例对象。如果是直接进行第4步,否则执行第2步

2. 装载并创建该servlet的一个实例对象

3. 调用servlet实例对象的init方法

4. 创建一个用于封装http请求消息的httpservletrequest对象和一个代表http响应纤细的httpservletresponse对象,然后调用service()方法并将请求和响应作为参数传递进去。

5. web应用被停止或者重启之前,servlet引擎将卸载servlet,在卸载之前调用servlet的destroy()方法


简化版:

1. 当servlet第一次被调用的时候,触发init函数,该函数会把servlet实例装载到内存,该函数只会被调用一次

2. 调用servlet的service()函数

3. 当第二次访问该servlet就直接调用service函数

4. 当web应用reload或者关闭tomcat或者关机都会去调用destroy函数,该函数就会去销毁servlet

5. servlet的生命周期


servlet接口的5个方法:

1. init 初始化调用

2. service 有请求的时候调用

3. destroy() 销毁的时候调用

4. getServletConfig 

5. getServletInfo


最简单版:

1. 加载(tomcat启动时)

2. 实例化(第一次调用servlet,创建一个servlet实例)

3. 初始化(调用init函数)

4. 处理请求(实现了servlet接口,service函数,如果是继承了HttpServlet,重写doGet 和 doPost 函数)

5. 销毁(destroy)



配置 servlet 中的<load-on-startup> 可以指定某个servlet自动创建。

servlet接口中的getServletConfig().getInitParameterNames()可以得到配置文件中的参数。



http协议的复习:

http1.0 短连接(发完就断掉)

http1.1 长连接(30秒)

http请求部分:

【请求行】请求方式:GET  ...  HTTP/1.1

【消息头】

1) Accept : text/html , image/* 【表示自己可以接受文本,网页,图片】

2)Accept-Charset: ISO-8859-1 

3)  Accept-Encoding : gzip, compress [ 可以接受gzip和compress压缩后的数据】

4)Accept-Language: 浏览器支持文字

5)Host: www.sohu.com:80 【表示该请求要找的主机名和port】

6)If-Modified-Since: 【后面一个时间,告诉服务器,我的缓冲中有这个资源文件,该文件的时间是。。。】

7)Referer:http://www.sohu.com/index.jsp 【告诉服务器,我来自哪里,该消息头,常用于防盗链】

8)User-Agent: Mozilla/4.0(compatible:MSIE 5.5; Windows NT 5.0) 【告诉服务器浏览器内核】

9)Cookie

10) Connection: close/keep-Alive 【保持连接,发完数据后,我不关闭连接】

11)Date: 【浏览器发送该http请求的时间】


http响应头:

【状态行】HTTP/1.1 200 OK

【消息头】

Server: 服务器名称

Date : 返回时间

Content-Length: 

Content-Type : 

Cache-control : private


【实体内容】

<html>

<BODY>


状态码 含义
100-199 需要提交下一次请求才能完成整个处理过程
200-299 成功完成请求并完成处理过程(200)
300-399 资源移位(302)
400-499 客户端请求有错误(404)
500-599 服务器端出现异常(500)

http响应头详细解释:

Location:http:// www.baidu.org/index.jsp 【让浏览器重新定位到url】

Server:apache tomcat【告诉浏览器我用tomcat】

Content-Encoding:gzip【使用的内容编码】

Content-Length:80【告诉浏览器会送的数据大小80字节】

Last-Modified:【告诉浏览器,资源上次更新状态】

Refresh: 1 ; url = http://www.baidu.com 【过去多久,刷新到这个url】

Content-Disposition:attachment ; filename = aaa.zip 【告诉浏览器,有文件下载】

Transfer-Encoding:chunked 【传输编码】

Set-Cookie: 

Expires: -1 【ie缓存页面】

Cache-Control:no-cache 【火狐缓存页面】

Pragma:no-cache【其他浏览器缓存页面】

Connection:

Date:




JSP 的9个内置对象

对象名 中文名 类型 作用域
Request 请求 javax.servlet.ServletRequest Request
Response 应答 javax.servlet.ServletResponse Page
pageContext 页面上下文对象 javax.servlet.jsp.PageContext Page
session 会话对象 javax.servlet.http.HttpSession Session
application 应用程序对象 javax.servlet.ServletContext Application
out 输出对象 javax.servlet.jsp.JspWriter Page
config 配置对象 javax.servlet.ServletConfig Page
page 页面对象 java.lang.object Page
exception 异常对象 java.lang.Throwable Page





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章