常识:
- JavaEE:服务器端 ?客户端(浏览器) ?B/S
- B/S: Browser ?Server ? HTTP协议
- ?? ? www.baidu.com ?www.jd.com...
- C/S: Client ? Server ? TCP/IP协议 ?Socket
- ?? ? QQ 迅雷 ... ?
1.Http协议
- HTTP协议:服务器和客户端之间,进行超文本传输的行为规范
- Http请求:客户端 -> 服务器
- Http响应:服务器 -> 客户端
- 端口:80
1.1 什么是Http协议
????????HTTP,超?本传输协议(HyperText Transfer Protocol)是互联?上应?最为?泛的?种?络 协议。所有的WWW?件都必须遵守这个标准。设计HTTP最初的?的是为了提供?种发布和接收 HTML??的?法。
- 传输协议:定义了,客户端和服务器端通信时,发送数据的格式
- 特点:
??1. 基于TCP/IP的?级协议 ? 2. 默认端?号:80 ?3. 基于请求/响应模型的:?次请求对应?次响应 ?4. ?状态的:每次请求之间相互独?,不能交互数据 - 历史版本:
?1.0:每?次请求响应都会建?新的连接 ?1.1:复?连接
1.2 Http协议的组成
????????Http协议由Http请求和Http响应组成,当在浏览器中输??址访问某个?站时,你的浏览器会将 你的请求封装成?个Http请求发送给服务器站点,服务器接收到请求后会组织响应数据封装成? 个Http响应返回给浏览器。即没有请求就没有响应。
1.3 Http请求
- 请求?
请求?式:HTTP协议有7中请求?式,常?的有2种
- GET
1. 请求参数在请求?中,在url后。 2. 请求的url?度有限制的 3. 不太安全 - POST
1. 请求参数在请求体中 2. 请求的url?度没有限制的 3. 相对安全
- 请求的资源:/DemoEE/form.html
请求协议/版本
- 请求头:
请求头是客户端发送给服务器端的?些信息,使?键值对表示key:value
1.4 Http响应
- 响应?
Http协议; 状态码:常?的状态码如下: ????????200 :请求成功。 ????????302 :请求重定向。 ???????? 304 :请求资源没有改变,访问本地缓存。 ???????? 404 :请求资源不存在。通常是?户路径编写错误,也可能是服务器资源已删除。 ???????? 500 :服务器内部错误。通常程序抛异常。 状态信息:状态信息是根据状态码变化?变化的。 - 响应头
? ??响应也都是键值对形式,服务器端将信息以键值对的形式返回给客户端。 - 响应体
响应体是服务器回写给客户端的??正?,浏览器将正?加载到内存,然后解析渲染显示? ?内容。
2. Tomcat服务器
????????Web开发中常?的web应?服务器。
2.1 Web开发中的常?概念
?B/S系统和C/S系统:
- Brower/Server:浏览器/服务器 系统 ----- ?站
- Client/Server:客户端/服务器 系统 ----- QQ、?秋、?型游戏
web应?服务器:
????????供向外部发布web资源的服务器软件
2.2 web资源
存在于web应?服务器可供外界访问的资源就是web资源。 ????????例如:存在于web应?服务器内部的Html、CSS、JS、图?、视频等。
- 1. 静态资源:指web??中供?们浏览的数据始终是不变。?如:HTML、CSS、JS、图?、多 媒体。
- 2. 动态资源:指web??中供?们浏览的数据是由程序产?的,不同时间点访问web??看到 的内容各不相同。 ?如:JSP/Servlet、ASP、PHP javaWEB领域:动态资源认为通过java代码去动态?成html。
2.4请求的URL地址

2.5?Web开发中常?的web应?服务器
- WebLogic:oracle公司的?型收费web服务器,?持全部JavaEE规范。
- WebSphere:IBM公司的?型收费web服务器,?持全部的JavaEE规范。
- Tomcat:Apache开源组织下的开源免费的中?型的web应?服务器,?持JavaEE中的 Servlet 和 JSP规范。
3 .Tomcat的下载与安装
3.1 下载
官网:https://tomcat.apache.org/download-80.cgi
3.2安装
Tomcat有安装版和解压版(绿?版)
- 安装版:以.exe形式的安装包,双击安装到我们的电脑上,?的?较少
- 解压版:即绿?版,解压后直接使?,?的?较多

?3.3 Tomcat的?录结构

- bin:脚本?录
启动脚本:startup.bat 停?脚本:shutdown.bat - conf:配置?件?录 (config /configuration)
核?配置?件:server.xml ?户权限配置?件:tomcat-users.xml 所有web项?默认配置?件:web.xml - lib:依赖库,tomcat和web项?中需要使?的jar包
- logs:?志?件 localhost_access_log.*.txt tomcat 记录?户访问信息,星*表示时间。
例如:localhost_access_log.2016-02-28.txt - temp:临时?件?录,?件夹内内容可以任意删除。
- webapps:默认情况下发布WEB项?所存放的?录。
- work:tomcat处理JSP的?作?录。
3.4 Tomcate的启动与运?
双击Tomcat下的bin下的startup.bat启动Tomcat 或者在CMD命令行直接输入 startup
在浏览器的地址栏中输?http://localhost:8080,看到如下??证明启动成功

Tomcat启动不成功的原因分析:
开启: ? ? cmd: startup 配置环境变量 ?? ? ? ?http://localhost:8080 ?? ?? ?问题: ? ?1.startup报错了 ? ? ?缺少path:CATALINA_HOME ?Tomcat_home ? ? ? ? ? ? ? 添加 tomcat安装目录 到环境变量那里 ? ? ? 缺少path: JRE_HOME? JAVA_HOME ? ? ? ? ? ? ? ? 添加?jdk的安装目录 到环境变量那里 ? ?2.闪退:logs ? ? ? 1.缺少环境变量 ? ? ? 2.Address already in use 端口被占用 ? ? ? ? ?暴力杀死进程: ??????????????????找到占?的端?号,并且找到对应的进程,杀死该进程 ? ? ? ? ?修改tomcat端口号:? server.xml
关闭:关掉窗口 ?? ? shutdown
4 项?部署
4.1 Web应?的?录结构
 ? ?应用目录[hello] ? ? ?|- [hello.html] ? ? ?|- [index.html] ? ? ?|- 目录(WEB-INF) - 客户端不能直接访问 ? ? ? ? ? |- java部分 ? ? ?|- 目录[img/image.jpg] ?访问tomcat: http://localhost:8080 ?访问应用:http://localhost:8080/应用名/../资源名字 ? ? ? ? ?http://localhost:8080/应用名 -> 默认首页
?4.2??tomcat部署web应用
安装=部署
安装指的就是web应用的部署,是把web资源放在 指定位置
部署项?的?式: ?1.安装:tomcat关闭状态,应用目录复制到 webapps 中 ? ? ? ? 应用名 = 目录名 ? ?卸载:关闭服务器,删除目录 ?2.安装:应用目录 压缩 ?hello.war ? ? ? ? tomcat可以是开启状态,直接将hello.war复制到webapps中,自动解压成hello目录 ? ?卸载:删除 hello.war ?3.安装:tomcat关闭状态,修改server.xml文件 ? ? ? ? <Context path="hi" docBase=""></Context> ? ? ? ? path: 虚拟目录名 ? ? ? ? docBase: hello 目录的绝对路径(避免中文空格) ? ? ? ? 访问时,使用的是虚拟目录名 ? ?卸载:删掉Context标签,重启服务器 ?4.安装:tomcat可以是开启状态 ? ? ? ? conf/Catalina/localhost/xx.xml ? ? ? ? 文件内容:<Context docBase=""></Context> ? ? ? ? 访问时,使用虚拟目录名-应用名,xx.xml文件名 ? ? ? ? IDEA默认使用方式 ? ?卸载:删除xml文件
5. 使?IDEA创建Web应?并部署运?
JavaWEB工程 - 是用于开发,敲代码的地方 ? IDEA部署工程:web服务器真正调用的web应用的位置? ?,IDEA创建的是day01工程 ? ? ? ? ?/Users/bonnie/Java2106/JavaEE/out/artifacts/day01_war_exploded
5.1步骤
?
1. 创建Java?程 ,是普通的java工程

2.. 右键项?,添加框架?持

?最后点击ok
完成后显示这样
?
3. 添加运?环境


?点击窗?右下? Fix 按键,即部署web应?。
添加依赖
4.设置?程,添加 JavaEE 依赖

?
?选择Tomcat8.5依赖库。
5.点击右上角的绿色三角形
注:有创建多个web应用时候,点击运行按钮,运行哪个web应用是随机的所以建议要保留当前使用的web应用,建议只部署一个web应用
?部署web应用
?

把普通文件转成web应用。这个新的文件夹里面的内容最后被运行的时候被添加到web应用目录中?

然后点击ok就完事了 ,显示如下

5.2 IDEA与tomcat的相关配置
1. IDEA会为每?个tomcat部署的项?单独建??份配置?件 查看控制台的log: ????????Using CATALINA_BASE
2. ?作空间项? 和 tomcat部署的web项? ????????tomcat真正访问的是“tomcat部署的web项?”,"tomcat部署的web项?"对应着"?作 ????????????????空间项?" 的web?录下的所有资源 ????????WEB-INF?录下的资源不能被浏览器直接访问
3. 断点调试:使?"???"启动 dubug 启动
在java工程里面我们看到的只是web应用的一种形式 ,真正被调用的部署的web应用在这个工程的out文件夹里面。
?
?
?
|