- Servlet
Sun在 其api 中定义了servlet 接口,不要去到 jdk 中找, 而要去 javaee的api 找。
Servlet是sun公司提供的一门用于开发动态web资源的技术。
servlet 基于request - response 请求模型 (http协议)
Sun公司在其API中提供了一个servlet接口,用户若想开发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
编写一个Java类,实现servlet接口。
把开发好的Java类部署到web服务器中。
4.1 快速入门(编写servlet步骤)
- 继承 javax.servlet.http.HttpServlet
- 覆盖doGet、doPost
- web.xml配置Servlet的虚拟路径
- 启动服务器, 发布web应用,去访问http://localhost:8080/day08_servlet/hello
web.xml配置Servlet访问虚拟路径:
GET方式请求提交映射关系:
4.2 为什么要去继承HttpSerlvet
4.3 servlet的生命周期
servlet的生命周期方法执行顺序:
Init : 第一次访问, 创建serlvet的时候会执行, 用来 初始化 serlvet
Service: 每次 请求的时候, 都会执行
Destroy: 当servlet销毁, 不再服务客户端请求的时候销毁
小结: 一个servlet第一次被访问的时候,会创建出来,调用init 初始化,然后这个servlet类的一个实例对象就驻留在内存中,后续再去访问这个servlet的时候, 就会拿 内存中servlet实例来响应请求. 直至 服务器 停止…
- Servlet是一个供其他Java程序(Servlet引擎,服务器)调用的Java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。
- 针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。
- 在Servlet的整个生命周期内,Servlet的init方法只被调用一次。而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法