四、创建Servlet
1.什么是Servlet
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
广义
狭义
2.编写第一个Servlet
①:编写Servlet
- 实现servlet接口
- 重写5个主要方法
- 在servlet()方法中编写输出语句
②:部署配置访问servlet
- 将写好的servlet程序编译成.class文件
- 将.class文件放置到WEB-INF下边的classes文件当中去
- 配置web.xml
- 启动tomcat并完成访问
访问路径:http://localhost:8080/myweb/myservlet
五、Http协议
1.认识url
url被称为统一资源定位符,用来表示从互联网上得到的资源位置和访问这些资源的方法。
他的表示方法一般为:
<协议>://<主机>:<端口>/<路径>
如下我们启动一个servlet程序,来看一下我们的url表示
http://localhost:8080/BuyechengServlet/login.html
大家可以看到我们采用的是我们这里采用的是 http协议
localhost:代表的是我们本机的IP地址
8080:代表我们的端口号
BuyechengServlet/login.html :代表的是我们的路径。
协议部分确定了我们的浏览器怎样向浏览器发送请求,以及服务器应该怎样反馈我们的请求,除了HTTP协议以外还有FTP协议和DNS协议等。
主机部分一般是我们的ip地址,localhost指的我们本地的IP地址,也可以用127.0.0.1来代替。当然这个部分使用的最多的还是域名的方式,比如www.baidu.com等等都属于域名。我们在计算机网络当中是通过ip地址来进行寻址的,那么就需要把域名解析成ip地址,解析的工具就是我们上课节说的DNS服务器。
端口部分一般采用的是80端口号,而我们上边所使用的的8080端口号,是tomcat默认的端口号。
端口号的存在是为了我们相关的进程能够有及时的从计算机网卡当中拿到属于自己的数据。每一个进程都有一个属于自己的端口号,且不能重复。每一个到达网卡的数据都必须带有响应的端口号,以便能够请求响应的进程。
路径部分的主要作用是起到资源定位的作用,定位相关的资源,以便于我们能够及时的处理资源。
2.超文本传输协议http
超文本传输协议(http),是关于在网络上如何传输超级文本(既HTML文档)的协议。http规定了Web(广域网)基本运作过程,以及浏览器和web服务器之间的通信细节。HTTP规定Web的基本运作过程是基于客户/服务器的通信模式,客户端主动发起HTTP请求,服务器端主动接受HTTP请求,在返回响应的http响应结果。
3.http协议的请求和相应
①.HTTP请求格式
一个http请求一般由一下三部分组成
- 请求方式、url和Http版本
HTTP的请求方式有很多种,这里只讲解两种,既get和post
GET:
- 通过Url传递参数,Url与参数之间用?隔开,多个参数用&隔开,也是表单的默认提交方式。
- Get传送的数据量较小,这主要是因为收到url长度的限制。
- Get会将数据显示到URL当中不安全。
- Get一般用于直接获取数据,提高查询速度。
POST:
- post的数据在请求主体内,所以相比安全;
- post对上传数据的大小无限制;
- post适用于增删改操作。
- 请求头
- Accept-Encoding: gzip, deflate, br #浏览器所用的语言
- Host: www.baidu.com #远程主机
- Cookie: # cookie User-Agent: #浏览器类型
- 请求正文
wd=csdn&rsv_spt=1&rsv_iqid=0xcc9c81290004bde9&issp=1
②.HTTP响应格式
- 状态
200:响应成功
400:错误的请求,客户发送的HTTP请求不正确
404:文件不存在,访问的url地址不对
405:服务器不支持客户的请求方式
500:服务器内部错误
- 响应应头
- 响应正文
<html>
<head>
<title>qcby</title>
</head>
<body>
<h1>qcby</h1>
</body>
</html>
4.无状态的http协议
当用户访问web应用时,在许多情况下,web服务器必须能够跟踪用户的状态。比如许多用户在购物网站上购物,Web服务器为每个用户配置了虚拟的购物车。当某个用户请求将一件商品放入购物车时,web服务器必须根据发出请求的用户身份,找到客户的购物车,将商品放入其中。之所以能够完成这样的操作不是因为http协议拥有能够记录用户身份的功能。HTTP是无状态的协议。所谓的无状态,是指当浏览器与服务器之间进行基于http协议进行通信时,HTTP没有提供服务器持续跟踪特定浏览器端的规范。上述操作之所以能完成是因为http的会话管理机制。
会话:双方都带有对方的标记,通讯的时候根据带着的标记进行识别。这个会话跟打电话原理一样的,双方手机网卡记录对方标记,每次带着标记通话,两端都存着好多电话号码就跟存了好多标记一样。