Servlet基础

web应用程序的组成:

网页:浏览器需要显示的内容

Web浏览器:1.向Web服务器发出请求

2.解析网页,渲染显示给用户

Web服务器:1.提供Web服务

2.存放Web应用程序

HTTP协议:Web浏览器和Web服务器之间的相互通讯

解析HTTP协议

什么是HTTP协议?超文本传输协议,是客户端(浏览器)和服务器通讯的一种标准。一套计算机在网络中通讯的规则。位于TCP/IP协议族的顶层(应用层)。

HTTP协议的特点:

1.遵循请求/响应模式

2.无状态的协议--浏览器和服务器不需要建立持久的连接,浏览器发出请求,服务器返回响应,连接就断开

3.http协议的端口为80

HTTP的处理流程:

1.客户端(浏览器)和服务器建立连接(三次握手机制)

2.客户端(浏览器)向服务器发出HTTP请求

3.服务器向客户端(浏览器)回发HTTP响应

4.客户端(浏览器)和服务器关闭连接(四次挥手机制)

三次握手和四次挥手

三次握手:第一次握手,客户端向服务器端发送标有SYN的数据包

第二次握手,服务器端向客户端回发标有SYN/ACK的数据包

第三次握手,客户端向服务器端发送标有ACK的数据包

四次挥手:第一次挥手,客户端发送一个FIN到服务器端,用以关闭客户端到服务器端的数据传送

第二次挥手,服务器端收到FIN后,发送一个ACK给客户端

第三次挥手,服务器端发送一个FIN到客户端,用以关闭服务器端到客户端的数据传送

第四次挥手,客户端收到FIN后,发送一个ACK给服务器端

HTTP请求信息:从上到下----请求行、请求头、空行、消息体

1.请求行:描述请求方式、请求URL,及HTTP协议的版本

2.请求头:以键值对的方式描述客户端的信息

3.空行:标识请求头的结束

4.消息体:描述客户端请求的表单数据(POST请求)

HTTP请求方式:

GET POST HEAD OPTIONS PUT DELETE TRACE CONNECT

其中GET--做资源的获取、POST--做数据的传输、PUT--做数据的修改、DELTE--做数据的删除-----用得较多

GET和POST区别:

1.请求信息格式(流格式)的区别:

GET方式的表单数据附加在URL后面,所以没有消息体

POST方式有消息体,在消息体中描述表单数据

(表单数据如何查看--浏览器-->右键-检查-->network-->Headers查看请求或响应头,Payload查看表单数据)

2.用途区别:

GET方式主要用于资源的查找,POST方式主要用于数据的传输(如上传文件)

3.传输性能的区别:

GET方式只能提交数据量小的文本数据,POST方式可以提交大文本数据,还可以提交二进制数据。GET方式提交的数据会在浏览器地址栏中显示,POST方式提交的数据不会再浏览器地址栏中显示,相对安全。

GET和POST的选用

1.请求静态页面或图形文件使用GET方式,做资源的查找

2.发送大数据时,用POST方式

3.上传文件时,用POST方式

4.发送用户名和密码或者其他保密信息时,用POST方式

HTTP响应信息-- 从上到下,状态行 响应头 空行 消息体

状态行:描述HTTP协议版本、状态码、响应描述

响应头:以键值对方式描述服务器相关的信息,如内容格式

空行:标识响应头的结束

消息体:服务器发送给客户端的具体数据

HTTP协议的响应状态码有5种

100-199:表示信息性代码,标识客户端应该采取其他的动作,请求正在进行

200-299:表示客户请求成功

300-399:表示用于已经移走的资源文件,指示新的地址

400-499:表示由客户端引起的错误

500-599:表示由服务器端引起的错误

响应头中的信息:content-type--由MIME类型表示

什么是MIME类型?设定某种拓展名的文件用一种应用程序打开的方式类型。当该拓展名文件被访问时,浏览器会自动使用指定的应用程序打开。

常见的MIME类型有:

text/html html页面文本数据 text/css css文件数据 text/xml xml数据 application/x-javascript js数据

application/json json数据

image/gif gif图片数据 image/png png图片数据 image/jpeg jpg图片数据

辅助应用

为解决Web服务器无法动态响应信息的缺陷,在Web服务器之后增加了辅助应用来动态生成响应信息。

在Java中,采用Web容器+Servlet方式作为辅助应用的解决方案。

什么是Servlet?Servlet又是如何诞生的呢?

Servlet 是 Server Applet的缩写,服务器端小程序,是一种使用Java开发动态网页的技术。

如果不嫌麻烦,可以使用Java动态生成网页的相应API去完成动态网页的开发,但是此时需要做很多事,解析HTTP请求,解析HTTP响应呀等。为了省事(偷懒)-简化开发,把动态生成网页的Java API进行了封装,形成了一套新的API,称为Servlet API。

Servlet API的结构

Servlet接口 ServletConfig接口

GenericServlet

HttpServlet

严格的说,Servlet只是一套Java Web开发的规范(技术标准)。只有规范(标准)并不能做任何事,必须要实现规范(标准)。所谓实现规范,就是书写代码来完成Servlet规范中提到的各项功能。

 

public TestServlet implements Servlet{
    // 实现接口方法
}
public TestServlet implements Servlet{
    // 实现接口方法
}

Servlet又提供了两个抽象类 GenericServlet和HttpServlet,它们都实现了Servlet中的很多常用功能,可以通过继承这两个抽象类的方式简化Servlet的编写。

public TestServlet extends GenericServlet{
    // 实现Service方法
}

HttpServlet继承于GenericServlet,用于开发基于HTTP协议的Servlet程序。

Web 容器

就是Servlet程序的运行环境,它实现了Servlet规范定义的各种接口和类,为Servlet的运行提供底层支持,还可以管理由用户书写的Servlet类,比如,初始化Servlet等

Web容器的作用:

1.通讯支持

2.Servlet生命周期的管理

3.线程支持

4.jsp支持

5.处理安全性

Servlet的生命周期:

1.容器加载并实例化Servlet

2.调用init方法完成初始化

3.当请求到达,调用service()方法,处理请求,产生响应

4.销毁阶段,容器调用destroy()方法,完成资源清理

常用的Web容器,Tomcat、Jboss,WebLogic等,我们选用Tomcat。和以往大家接触的外置安装Tomcat的形式不同,我们使用内置tomcat的形式--使用Java代码书写Tomcat容器。

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>9.0.36</version>
        </dependency>

{name1:value1,nane2:value2,...,naneN:valueN}

{id=1, name='张三', birthday=1990-10-05, address='成华区', pwd='root'}

{id:1, name:'张三', birthday:1990-10-05, address:'成华区', pwd:'root'}

{id:1, name:'张三', birthday:'1990-10-05', address:'成华区', pwd:'root'}

jackson-- 把Java对象转换为JSON对象格式和JS对象差不多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值