Servlet基础知识

一,web应用程序的组成

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

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

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

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

                                2.存放Web应用程序

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

二,解析HTTP协议

1,什么是HTTP协议?       

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

2,HTTP协议的特点

        2.1,遵循请求/响应模式

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

        2.3,http协议的端口为80

3,HTTP的处理流程

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

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

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

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

4,三次握手和四次挥手

   三次握手:

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

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

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

   四次挥手:

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

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

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

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

5,HTTP请求信息

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

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

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

                5.3,空行:标识请求头的结束

                5.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方式

6,HTTP响应信息

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

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

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

                6.3,空行:标识响应头的结束

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

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方式作为辅助应用的解决方案。

1,什么是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规范中提到的各项功能。

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

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

2,Web 容器

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

2.1,Web容器的作用

        通讯支持        Servlet生命周期的管理        线程支持        jsp支持        处理安全性

3,Servlet的生命周期

        3.1,容器加载并实例化Servlet

        3.2,调用init方法完成初始化

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值