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.ServletRequestRequest
Response应答javax.servlet.ServletResponsePage
pageContext页面上下文对象javax.servlet.jsp.PageContextPage
session会话对象javax.servlet.http.HttpSessionSession
application应用程序对象javax.servlet.ServletContextApplication
out输出对象javax.servlet.jsp.JspWriterPage
config配置对象javax.servlet.ServletConfigPage
page页面对象java.lang.objectPage
exception异常对象java.lang.ThrowablePage





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值