亚信联创面试前准备
面试题目:简述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 |