Servlet简介
- Servlet是什么?
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 - Servlet的生命周期
从开始初始化到结束的一个过程
a.客户端请求该 Servlet;
一个客户端的请求到达 Server
Server 创建一个请求对象,处理客户端请求
Server 创建一个响应对象,响应客户端请求
b.加载 Servlet 类到内存;
c.实例化并调用init()方法初始化该 Servlet;
d.service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy())。
e.加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。 - Servlet的接口和类
接口:Servlet、ServletConfig、ServletRequest、ServletResponse、HttpServletRequest、HttpServletResponse、ServletContext
类:HttpServlet(抽象类)、GenericServlet(抽象类)
- Servlet四大域(按大小)
1.application域:存储数据,在整个应用程序中,只要设置了值,所有的都可以拿到(当前类,其他类,页面)
2.session域):一次会话,储存在你的服务器中
- 在session里面有三种设置超时时间
a.在代码中设置
b.在web.xml文件中设置
c.在tomcat中设置
3.resquest域:整个请求链,只能使用一次,可以使用它去获取http头的一些信息。
注:在service方法调用前由服务器创建,传入service方法,整个请求结束,request生命结束。整个请求链不能断,一旦断掉,在第1个里面设置的request里面的域,再使用另一个请求去获取的时候是空值,因为他是两次请求。
4.page域:整个jsp页面