浏览器和服务器之间交互
服务器:其本身就是一台电脑(机器)只不过安装了特殊程序。
Tomcat
tomcat是一款服务器软件,只要安装了tomcat这台机器就是服务器。
tomcat是一个绿色版本程序(解压即安装),基于Java(前提,设置Java的jdk)
1.windows的安装
2.idea中的安装
软件架构
B/S :browser/server :浏览器服务器模型 ,京东 , 淘宝, 百度网站
C/S : client / server :客户端服务器模型 , 王者荣耀, LOL 穿越火线
请求是浏览器给服务器 , 响应是服务器给浏览器 , 有请求才有响应,且请求和响应必须成对出现
web资源
通过tomcat能够发布出去的内容, 图片 视频 文件 ,代码 html css javascript
静态资源: 无论何时何地 任何人访问 内容都是一模一样的(图片 , html css javascript (让页面动) )
动态资源: 无论何时何地 不同人访问 效果不一样(不修改源代码的情况下) jsp / servlet。
常见服务器(重点)
WebLogic :oracel (甲骨文) 收费 , 在web中有十三套规范(接口) weblogic服务器对接口都有实现(使用这个服务器不需要引入jar包)
WebSphere : IBM 开发的产品 (收费) 服务器对接口都有实现(使用这个服务器不需要引入jar包) 一般用于银行系统(简称was)
tomcat :支持JSP和Servlet(十三套规范的其中俩套)
开发:使用tomcat( 简单 免费 )
真正运行在使用的是 : WebLogic 和 WebSphere
问题:导入jar为什么就可以使用规范了
jar包中都是class 的文件(java文件)
安装
注:tomcat在jdk1.8可正常运行
在网上下载tomcat压缩包,解压(我电脑操作系统为64位,所以下载的是64位的压缩包。如果是32位请下载32位)
1.解压即安装
2.必须配置jdk(tomcat依赖jdk运行,如何配置请大家自行百度搜索)
如何验证是否安装成功?
2.1 打开bin目录
2.2 双击执行
2.3在地址栏中输入http://localhost:8080或者http://127.0.0.1:8080。
安装问题
1.软件jdk配置不对
2.端口号被占用
端口号占用
tomcat默认启动占用三个端口号(如果端口号被占用 修改如下端口即可)
windows发布程序(了解)
1.webapps文件夹下创建文件夹
2.在文件夹中放入的正常内容都会被发布。
非法内容可能出现404。404:表示的含义是服务器没有找到这个资源
服务器特殊的目录
WEB-INF:WEB-INF下的任何内容都不可被浏览器直接访问(是受保护的目录)
classes文件夹:放置Java代码编译后的目录
lib文件夹:服务器的jar包位置
web.xml:服务器的配置文件
3.启动tomcat
http://localhost:8080/ 访问的是webapps下 以后有任何路径 直接拼接即可 层级目录以/区分
4.欢迎页面
a.发布的路径不一定放在webapps下,webapps只是默认的。可以在server.xml加入如下配置。
b.直接在地址栏访问即可 http://localhost:8080/path/资源文件名称.后缀
idea中配置tomcat
idea整合tomcat完毕。
idea使用tomcat
1.新建module
缺少lib加入lib即可。classes
2.需将工程和idea建立连接
web阶段设置访问路径,但项目过程不一定设置
启动tomcat
停止tomcat
关于web.xml的说明
http协议概述
http协议: 其实就是一种特殊格式
(超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议)
http://www.baidu.com/ 协议平常在访问的过程中 其实被隐藏掉了
它规范了传输数据的内容和格式
http由两部分组成
-
请求协议(浏览器给服务器)
格式如下:(三部分组成)
请求行
请求头
请求体 -
响应协议(服务器给浏览器)
格式如下:(三部分组成)
响应行
响应头
响应体
查看协议:使用谷歌或者火狐都可以查看 F12
http协议查看
http为请求和响应
请求: 行 头 体
请求浏览器给服务器的时候 携带着大量的信息(默认都是浏览器自带的 不需要我们操作)
get和post提交的区别:
get特点:
GET http://localhost:8080/ee122/form.html?username=zhangsan&nickname=jack HTTP/1.1
- 数据会拼接到地址栏上
- 第一个参数以?的形式拼接
- 后续的参数都是以&的方式拼接
- get不能够传递大量的数据 (传递有限)
post特点:
POST http://localhost:8080/ee122/form.html HTTP/1.1
1.数据不会在地址栏体现
2.post可以传递大量数据
3.post将数据放在了请求体
请求格式(三个部分)
请求方式、请求路径、请求协议版本
请求头
每一个特殊的key 和 特殊的value都有自己的意义
格式:key:value
请求体
get没有请求体 post有请求体
格式: key=value&key=value&key=value…
响应: 行 头 体
响应行:
HTTP/1.1 200
格式:
协议版本 状态码
200:表示响应成功 此次请求有效
404:服务器资源找不到
响应头:
key:value
响应体:
其实就是我们访问资源的源码 ,只不过浏览器还要解析源码才可以看到页面