Servlet
1.Servlet 是java规范之一,规范就是接口
2.Servlet 也是javaweb三大组件之一。三大组件分别是Servlet程序,Fitter过滤器,;Listener监听器
3.Servlet是运行在服务器上的一个java小程序,他可以接收客户端发送过来的请求,并相应数据给客户端
http:// 表示http协议
localhost 是服务器的ip
:8080 是服务器的端口号
/工程路径
/资源路径
Servlet的生命周期
1.Servlet类的加载 字节码文件加载到虚拟机的过程
2.对象的创建 调用方法
3.servlet的初始化工作init方法 重写父类的init
4.调用service方法处理请求和响应请求
doget dopost
5.调用销毁destroy方法
特点:
在第一次访问的时候就会执行构造器,init初始化方法 不随多次访问而多次执行
每次访问的时候都会执行service方法
在web工程停止的时候才会调用摧毁方法
Servlet继承体系
interface Servlet 接口,知识负责定义Servlet程序的访问规范
Class GenericServlet 实现了Servlet接口,做了很多的空实现。并且持有一个ServletConfig类的引用,并对ServletConfig的使用做一些方法
Class HttpServlet抽象类实现service()方法,并实现了请求的分发处理。 其对象代表客户端的请求,当客户端通过HTTP协议访问服务器的时候,HTTP请求头中的所有信息都封装在这个对象当中,开发人员通过这个对象的方法,可以获得客户端的这些信息。
1.ServletConfig类
Servlet程序的配置信息类
三大作用:获取Servlet程序的别名Servlet-name的值,获取初始化参数init-param,获取ServletContext对象
Servlet程序和ServletConfig对象都是由Tomcat负责创建,我们负责使用
Servlet程序默认是第一次访问的时候创建,ServletConfig是每个Servlet程序创建时,就创建一个对应的ServletConfig对象
2.ServletContext类
是一个接口,表示Servlet上下文对象
一个web工程,只有一个ServletContext对象实例
ServletContext对象是一个域对象
域对象是可以想Map一样存取数据的对象,叫做域对象,这里的域指的是存取数据的操作范围
四个作用:1.获取web.xml中配置的上下文参数context-param 2.获取当前的工程路径 3.获取工程部署后在服务器硬盘上的绝对路径 4.像Map一样存取数据
Http协议
是指双方或者多方互相约定好,大家都需要遵守的规则,叫做协议
所谓的HTTP协议就是指,客户端和服务器之间通信的时候,发送的数据,需要遵守的规则,叫做HTTP协议
HTTP协议中的数据也叫做报文
请求的HTTP协议格式
客户端给服务器发送数据叫做请求,服务器给客户端回传数据叫做响应
请求又分为get请求和post请求
get请求
1.请求行
请求方式 GET
请求的资源路径
请求的协议的版本号 HTTP
2.请求头
key:value 组成 不同的键值对,表示不同的含义
常见的请求
Accept 告诉服务器,客户端可以接受的数据类型
Accept-Langguage:告诉服务器客户端可以接受的语言类型
User-Agent:就是浏览器的信息
Accept-Encoding:告诉浏览器,客户端可以接受的数据编码压缩格式
Host:表示请求的服务器ip和端口号
Connection:告诉服务器请求连接如何处理
Keep-Alive:告诉服务器回传数据不要马上关闭,保持一小段时间的连接
Closed:马上关闭
POST请求
1.请求行
请求的方式 POST
请求的资源路径
请求的协议和版本号
2.请求体
Accept 告诉服务器,客户端可以接受的数据类型
Accept-Langguage:告诉服务器客户端可以接受的语言类型
Referer:表示请求发起时,浏览器地址中的地址
User-Agent:就是浏览器的信息
Host:表示请求的服务器ip和端口号
Content-Type:表示发送的数据的类型
Content-Length:表示发送的数据的长度
Cache-Control:表示如何控制缓存
哪些是get请求,哪些是post请求
get请求
1.form标签 method=get
2.a标签
3.link标签引入css
4.Script标签引入js文件
5.img标签引入图片
6.iframe引入html页面
7.在浏览器地址栏中输入地址后敲回车
响应的HTTP协议格式
1.响应行
响应的协议和版本号
响应状态码
响应状态描述符
2.响应头
key:value 不同的响应头,有不同的含义
空行(空行之后就是响应体)
3.响应体
回传给客户端的数据
HttpServletRequest类
每次只要有请求进入Tomcat服务器,该服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中。然后传递到service方法中给我们使用。我们可以通过该类对象,获取到所有请求的信息
请求的转发
请求转发是指,服务器受到请求后,从一次资源跳转到另一个资源的操作叫做请求转发
特点:浏览器地址栏没有变化,他们是一次请求,他们共享request域中的数据,可以转发到WEB-INF目录下,不可以访问工程外的资源
web中的相对路径和绝对路径
在javaweb中,路径分为相对路径和绝对路径
相对路径是:
. 表示当前目录
… 表示上一级目录
资源名 表示当前目录、资源名
绝对路径
http://ip:port/工程路径/资源路径
在web中/是一种绝对路径。
/如果被浏览器解析,得到的地址是:http://ip:port/
如果被服务器解析,得到的地址是http://ip:port/工程名
请求重定向
请求重定向,是指客户端给服务器发送请求,然后服务器告诉客户端说。我给你一些地址
你去新的地址访问,叫坐请求重定向(也许之前的地址可能已经被废弃)
设置状态码302
设置响应头,说明新的地址
特点:浏览器地址栏会发生边年华,会有两次请求,不共享request域中的数据,不能访问web-inf下的资源,可以访问工程外的资源