文章目录
1 Servlet技术
它是java类
- 一旦启动,常驻内存
与平台无前
与协议无关
2 Servlet提供的功能
- 对客户端发送的数据进行读取或拦截
- 读取客户端请求的隐含数据
- 运行结果或者生成结果
- 发送响应的数据
Servlet特点
- 线程化,高效率
- 简单方便
- 写类-可以像类一样,处理复杂业务
- 写配置
- 运行使用
3 Servlet生命周期
三阶段
- 初始化 init()
- 运行 service(req,resp)
- 消亡 destroy()
4 配置文件
在tomcat容器中运行,需要web.xml配置
核心节点
- servlet
- servlet-name
- servlet-class
- servlet-mapping
- servlet-name
- url-pattern
5 从编写servlet到部署
在ide中开发servlet
在server上部署servlet
6 tomcat和servlet的关系
Tomcat 是Web应用服务器,是一个Servlet/JSP容器。
Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户
而Servlet是一种运行在支持Java语言的服务器上的组件
Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品
从http协议中的请求和响应可以得知,浏览器发出的请求是一个请求文本,而浏览器接收到的也应该是一个响应文本。但是在上面这个图中,并不知道是如何转变的,只知道浏览器发送过来的请求也就是request,我们响应回去的就用response。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PLYRPluU-1613801842302)(images/image-20210203092040274.png)]
①Tomcat将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象,所有的HTTP头数据读可以通过request对象调用对应的方法查询到。
②Tomcat同时会要响应的信息封装为HttpServletResponse类型的response对象,通过设置response属性就可以控制要输出到浏览器的内容,然后将response交给tomcat,tomcat就会将其变成响应文本的格式发送给浏览器
7 servlet实例分析
- 创建一个MyServlet继承HttpServlet,重写doGet和doPost方法,也就是看请求的方式是get还是post,然后用不同的处理方式来处理请求
- 在web.xml中配置MyServlet,让浏览器发出的请求知道到达哪个servlet,也就是让tomcat将封装好的request找到对应的servlet让其使用
- 运行,观察各生命周期函数的运行
8 几个重点对象
- ServletConfig
- ServletContext
- request
- response
ServletConfig对象
- 获取途径:getServletConfig();
ServletContext对象
- 获取途径:
- getServletContext();
- getServletConfig().getServletContext(); //两种读是一样的。
- 功能:tomcat为每个web项目都创建一个ServletContext实例,tomcat在启动时创建,服务器关闭时销毁,在一个web项目中共享数据,管理web项目资源,为整个web配置公共信息等,通俗点讲,就是一个web项目,就存在一个ServletContext实例,每个Servlet读可以访问到它。
另外两个对象是入参带进来的,自动装填相应的信息
9 从请求到响应的流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jf0NbXQi-1613801842311)(images/image-20210203092733290.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1uviony8-1613801842314)(images/servlet run.gif)]
10 Servlet(Server Applet)
全称Java Servlet,未有中文译文。
是用Java编写的服务器端程序。
其主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
11 Servlet的工作模式
客户端发送请求至服务器
服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器
服务器将响应返回客户端
12 Servlet API 概览
Servlet API 包含以下4个Java包:
1.javax.servlet 其中包含定义servlet和servlet容器之间契约的类和接口。
2.javax.servlet.http 其中包含定义HTTP Servlet 和Servlet容器之间的关系。
3.javax.servlet.annotation 其中包含标注servlet,Filter,Listener的标注。它还为被标注元件定义元数据。
4.javax.servlet.descriptor 其中包含提供程序化登录Web应用程序的配置信息的类型。
Servlet 和Servlet容器之间的关系。
3.javax.servlet.annotation 其中包含标注servlet,Filter,Listener的标注。它还为被标注元件定义元数据。
4.javax.servlet.descriptor 其中包含提供程序化登录Web应用程序的配置信息的类型。