知名网站建设商家/网址域名ip查询

要充分理解servlet,我们就先要弄清浏览器与服务器的交换模式和HTTP协议。那么这两个又是什么呢?
1.HTTP协议介绍
http就是浏览器与客户端之间实现交流的一种协议,在这个协议下实现了,客户端将请求的地址,请求的内容以http协议封装到请求信息中,服务器通过http协议来解析请求头,然后查询到请求的内容,将内容以http协议封装起来传输给客户端,客户端通过http协议获取到响应信息,经过处理之后展现给用户面前,以此来实现信息的传递。
2.http的特点:
(1).简单快速,(2)灵活,可以传递任意类型的数据,只要规定好content- type,(3)无连接,限制每次只处理一个请求,服务器处理完客户的请求,并收到客户户的应答后,即断开连接,节省传输时间。每次请求时相互独立的。(4)无状态,表示事务处理没有记忆的能力,缺少状态意味着后续的处理需要前面的信息,则它必须进行重传,这样会导致每次连接传输的数据量增大,另一方面,在服务器不需要先前信息的时候它的传输速度就快,支持B/S,与C/S模式,并且在HTTP1.1版本后支持可连续连接 。
3..http的交互的流程:(1).客户端与服务器建立连接(2).客户端发送请求到服务器端(http),(3).服务器收到请求进行处理,然后将处理结果响应到客户端(http),(4).关闭客户端与服务器端的连接。
4..http协议的请求格式:
- 请求格式的结构:
- 请求行:请求方式、请求的地址和http协议的版本。
- 请求头:消息报头、一般用来说明客户端要使用的一些附加信息。
- 空行:位于请求行与请求数据之间,空行是必须的
- 请求数据:非必需
- 请求方式:
- Http1.0三种方式get、post、head
- Http1.1新增五种方式:options,put,delete,trace,connect
- Get请求数据,请求方式会以?号形式拼接到url中,会将数据拼接到url中,不安全,请求数据会在url中展现出来,没有请求实体部分,而且get拼接数据到url中,不能携带大量的数据,但是效率高;适应于不要求安全性与数据少
- post会发送单独的请求数据实体,安全,适合大量数据的发送,但是效率较低

5.响应格式和状态码:
- 响应格式结构:
- 响应行:HTTP版本、状态码、状态消息
- 响应头:消息报头,客户端使用的附加信息
- 空行:响应头和响应实体之间,必须的
- 响应实体:正文、服务器返回浏览器的信息
- 状态码:

- 常见状态码:
- 200 OK //客户端请求成功
- 400 Bad Request //客户端请求有语法错误,不能被服务器所理解
- 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
- 403 Forbidden //服务器收到请求,但是拒绝提供服务
- 404 Not Found //请求资源不存在,eg:输入了错误的URL
- 500 Internal Server Error //服务器发生不可预期的错误
- 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
6:什么是服务器呢?
- 服务器介绍
- 服务器:可以根据浏览器的请求自动调用并执行对应的业务逻辑处理代码的应用程序(狭义)是专门存放服务器应用程序的主机电脑也可以成为服务器主机(广义)
- 特点:代码编写的应用程序,可以解析浏览器,根据请求信息调用并且执行响应的代码处理请求,将处理的结果返回给浏览器
- 常用的服务器Tomcat软件,Tomcat是一个免费的服务器软件,它包含的目录主要有:
- Bin目录存放的是启动服务器的脚本文件
- Conf服务器的配置文件
- Lib服务器运行的jar包文件
- Logs日志
- Temp存放临时文件的
- Webspps存放运行代码的
- Work存放jsp文件的
7.什么是servlet呢?
- Servlet
- 狭义的servlet是指java语言实现的一个接口,广义的servlet是值任何实现了这个servlet接口的类。一般人们按照后一方式理解servlet。原理上说servlet可可以处理任意类型的亲求,单绝大多部分的servlet只用来扩展基于http协议的web服务器
- 特点:servlet由程序员编写,由服务器调用。简单方便可移植性强
- 使用:创建普通的Java类来继承servlet
- 编写service 的方法
- 在service方法中写逻辑代码即可
- 在webRoot存放我们后台相干的所有的文件。下的WEB-INF文件下的web.xml,文件中配置servlet。
- 简单的web.xml配置
<servlet><servlet-name>my</servlet-name><servlet-class></servlet-class><!-- 写servlet的全限定路径(包名+类名) --></servlet><servlet-mapping><servlet-name>my</servlet-name><url-pattern></url-pattern><!-- 配置servlet的访问别名 --></servlet-mapping>
servlet的具体实现步骤:
- 创建一个包
- 在包中创建一个实现了HttpServlet的java类
- 重写service的方法,在方法中声明处理规则
- 在web.cml中配置servlet
- 将web项目中webroot下的所有内容复制到服务器webapps目录中的新建文件夹下
- 启动服务器
运行流程分析:
- 浏览器通过http://localhost:8080/project/s发送请求
- 通过http://localhost:8080根据ip和端口号来找到对应的服务器,同时服务器接收到请求会到webapps下查找此次请求的代码
- project/s uri数据,服务器根据uri去找到对应的servlet执行;去项目中web.xml去匹配,匹配到之后会利用反射区返回响应