1. 简述Servlet执行原理和生命周期?
一、完整的servlet生命周期流程:
1.加载web.xml文件。
2.通过构造函数创建servlet对象。
3.通过init方法初始化servlet。
4.通过service,或者doGet、doPost提供服务。
5.在重启或关闭时自动对servlet进行销毁。
二、Web服务器在与客户端交互时.Servlet的工作过程是:
1.在客户端对web服务器发出请求
2.web服务器接收到请求后将其发送给Servlet
3.Servlet容器为此产生一个实例对象并调用ServletAPI中相应的方法来对客户端HTTP请求进行处理,然后将处理的响应结果返回给WEB服务器.
4.web服务器将从Servlet实例对象中收到的响应结构发送回客户端.
2. HTTP常用的请求头信息有哪些?作用?
http 请求中常用的请求头
Accept:告诉服务器,客户端支持的数据类型。
Accept-Charset:告诉服务器,客户端采用的编码。
Accept-Encoding:告诉服务器,客户机支持的数据压缩格式。
Accept-Language:告诉服务器,客户机的语言环境。
Host:客户机通过这个头告诉服务器,想访问的主机名。
Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的。(一般用于防盗链)
User-Agent:客户机通过这个头告诉服务器,客户机的软件环境。
Cookie:客户机通过这个头告诉服务器,可以向服务器带数据。
cookie 是临时文件的意思,保存你浏览网页的痕迹,使得再次上同一页面的时候提高网速,判断你 是否登录过这个网站,有些可以帮你自动登录的。
Connection:客户机通过这个头告诉服务器,请求完后是关闭还是保持链接。
3. 获取请求参数的常用API有哪些?
a)
getRequestURI()
获取请求的资源路径
b)
getRequestURL()
获取请求的统一资源定位符(绝对路径)
c)
getRemoteHost()
获取客户端的ip地址
d)
getParameter()
获取请求的参数
e)
getHeader("需要获取请求头的参数")
获取请求头
f )
getParameter()
获取请求的参数(多个值的时候使用)
g)
getMethod()
获取请求的方式
h)
setAttribute(key,value)
设置数据域
i)
getAttribute(key)
获取域数据
j)
getRequestDispatcher()
获取请求转发对象
4. ServletContext特点和作用
WEB容器在启动时,它会为每个 WEB应用程序创建一个对应的ServletContext对象,它代表当前web应用。
ServletConfig对象中维护了ServletContext对象的引用, 开发人员 在编写 servlet 时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。