概述
web 服务器、项目、资源概述
web 服务器:可以被浏览器访问到的服务器
常见的 web 服务器:
tomcat:中小型的服务器软件,免费开源,支持 JSP 和 Servlet apache 公司的产品
WebLogic:Oracle 公司的产品,是目前应用最广泛的 Web 服务器,支持 J2EE 规范。WebLogic 是用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用的 Java 应用服务器。收费的大型的服务器软件
WebSphere:IBM 公司的产品,支持 JavaEE 规范。WebSphere 是随需应变的电子商务时代的最主要的软件平台,可用于企业开发、部署和整合新一代的电子商务应用。收费的大型的服务器软件
web 项目: 部署在 web 服务器上面,可以被浏览器直接访问到的项目,特点:项目的结构得按照指定规则
web 资源:
静态资源:指在页面写死的、始终不变的数据,比如:HTML、CSS、JS、图片、音频、视频。
动态资源:指web页面中浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。 比如:在不同时间搜索微博的热门话题内容是不一样的。这些数据由程序生成,/Servlet、ASP、PHP等技术都可以完成。
软件的架构
网络中有很多的计算机,它们直接的信息交流,称之为:交互。
在互联网交互的过程的有两个非常典型的交互方式 —— B/S 交互模型和 C/S 交互模型。
C/S架构 Client/Server 客户端/服务器
特点:需要安装一个客户端,例如:QQ客户端 游戏各种客户端 迅雷客户端
优点:效果比较炫,好看
缺点:占用硬盘空间,服务器只要升级就要求客户端跟着升级
B/S架构 Browser/Server 浏览器/服务器
特点:不需要安装客户端,一个浏览器足矣,例如:网页淘宝 网页京东 网页12306
优点:不会占用硬盘空间,服务器只要升级不要求跟着升级
缺点:效果不炫,所有压力都在服务器
相同点: 都需要和服务器进行数据交互,都是先有请求,后给响应,一定是请求和响应成双成对
Tomcat 服务器
Tomcat 的目录结构
bin 里面存放的都是tomcat的二进制命令 关注点:开启服务: startup.bat 关闭服务:shutdown.bat conf 里面存放的都是tomcat的配置文件 关注点:server.xml(配置端口) web.xml lib 里面存放的都是tomcat运行过程中提供支撑的jar包 logs 里面存放的都是日志文件 关注点:错误信息的日志文件查看 catalina.2020-xx-xx.log temp 里面存放的是tomcat运行过程中创建的临时文件 由tomcat维护 work 里面存放的内容和jsp相关 webapps(核心) 用来存放web项目 存放在这个里面的项目可以被浏览器直接访问到 http://localhost:8080 --> webapps文件夹下
虚拟路径发布项目
方式1:配置独立xml文件
1.在 tomcat/conf 目录下新建一个 Catalina 目录(如果已经存在无需创建)
2.在 Catalina 目录下创建 localhost 目录(如果已经存在无需创建)
3.在 localhost 中创建 xml 配置文件,名称为:xxx.xml(xxx名就是项目的浏览器访问别名)
xxx.xml中代码如下:
<Context docBase="项目所在的硬盘位置" />
好处:使用配置文件对项目的部署和卸载不用重启 tomcat 了,也不影响 tomcat 整体的配置文件
方式2:配置 server.xml,添加 context 标签
在 server.xml 配置文件的最后加上如下代码:
<Context path="项目的浏览器访问别名" docBase="项目所在的硬盘位置" /> • 1
注意:谨慎使用(最好单独独立出来一个配置文件)
电脑安装 Tomcat(了解)
在电脑安装一个 tomcat 软件,将电脑变成 web 服务器,步骤:
1.下载一个 tomcat 服务器软件,官网地址 http://tomcat.apache.org
2解压下载好的 tomcat。注意:将解压后的文件 copy 到一个没有中文和空格的路径下
3.启动 tomcat 服务:进入 bin 路径,双击 startup.bat 服务器就可以启动(默认占用电脑的8080端口)
4.测试:在页面输入地址访问 http://localhost:8080
5.关闭 tomcat 服务:直接关闭 或者去 bin 路径双击 shutdown.bat
Tomcat启动的常见问题总结
1、一闪而过 原因:没有配置环境变量JAVA_HOME 或者配置错误 解决:配置环境变量JAVA_HOME,因为tomcat在启动的时候会去找环境变量JAVA_HOME Tomcat的底层需要JDK的支撑 JAVA_HOME=jdk的安装路径(不要加bin目录) path=%JAVA_HOME%\bin 2、报错 java.net.BindException: Address already in use: bind 原因:端口号被占用 解决: 方式1:结束正在占用端口的进程 1) netstat -ano 查看端口对应的pid 2) 打开任务管理器 结束pid对应的进程 方式2:改变自己的端口号 修改conf文件夹中的server.xml 大概在69行的位置 或者修改端口号为80: 80是默认端口号.可以不写
idea 集成 Tomcat 环境(了解)
idea 自动用的是虚拟路径的方式给 tomcat 管理的
idea集成tomcat步骤:
idea创建web项目:
idea发布项目:
Http协议
概念及作用
概念:
协议:规定了被约束对象都需要去遵守的规则
http协议:
- 是互联网上运用最为广泛的一种浏览器和服务器之间的协议,规定了浏览器和服务器之间要遵守的规则
- 只要浏览器访问服务器或者是服务器响应浏览器必须要遵循一些规则,这些规则都是由http协议制定好的
- http协议就是咱们浏览器和服务器之间的合同,双方都要遵循这份合同的规定内容
作用:
- 规定了浏览器去请求服务器时候必须带哪些数据,以及这些数据都要以什么格式进行传递
- 规定了服务器去响应浏览器的时候必须响应哪些数据回去,以及这些数据都要以什么格式进行传递
请求内容:请求行 请求头 请求体
请求内容分为:
- 请求行(第一行)
POST /web02_1/demo1.html HTTP/1.1 提交方式 要请求的服务器资源 使用的是http协议的那个版本(固定)
请求头(key:value)
数据的格式:键值对的数据
常用头数据:Referer User-Agent
Referer:当前页面的来源地址,可以解决防盗链
User-Agent:用户的浏览器版本信息,可以解决下载
请求体(要传递给服务器的页面数据)
只有 post 提交才有 是页面表单的数据要传递给服务器的内容
响应内容:响应行 响应头 响应体
响应内容分为:
- 响应行
// 组成部分: HTTP/1.1 200 固定协议版本 状态码 // 常见的响应状态码: 200 OK 请求已成功,响应也没问题。出现此状态码是表示正常状态。 302 资源重定向 304 去找缓存数据 403 服务器拒绝执行 (文件或文件夹加了权限) 404 请求的资源没找到 405 请求的方法不存在 500 服务器错误 (代码写的有问题)
响应头
常用响应头:
location:重定向操作,通常告知浏览器马上向该地址发送请求
refresh:定时刷新操作,指定时间后跳转到指定页面
content-disposition:通知浏览器以何种方式获取数据(直接展示数据或者以附件方式)–下载
content-type:通知浏览器返回的资源类型以及编码格式 --处理响应数据的中文乱码
- 响应体
浏览器页面要解析显示的内容即是响应体的内容
get 提交和 post 提交的区别
get 提交的数据不安全,因为所有的页面表单数据都在请求行中,意味着资源都在地址栏暴露了
post 提交的数据安全,因为所有的页面表单数据都在请求体中,意味着资源都不会在地址栏暴露了
get 提交有着大小的限制,post 提交没有大小的限制
get 提交没有请求体,所有的表单的数据都在请求行中
post 有请求体,所有的表单数据都在请求体中
Java web 项目
项目的结构
在 JavaEE 规范中,WEB 项目存在一定的目录结构,具体结构如
web项目(myweb) || ------ 静态资源(如html、css、js、img等)、二级目录等 || || || ------ WEB-INF目录(放在该目录下的资源浏览器是不能直接访问到) || ------ classess目录:放的都是java代码的 .class || ------ lib目录:放入项目需要的jar || ------ web.xml:配置文件(配置的是项目的内容) 是tomcat首先会去加载的配置文件 servlet如果是2.5的版本这个web.xml文件必须有 servlet如果是3.0的版本这个web.xml文件可以不要 用注解代替
三大技术:Servlet、Filter、Listener
java web 项目服务器有三大技术:Servlet、Filter、Listener
servlet:本质就是一个类,这个类实现了 java 提供的 Servlet 规范。
可以对浏览器的请求和响应进行处理
filter:本质上是一个类,这个类需要实现 java 提供的 Filter 规范。
可以对浏览器访问服务器资源时的一种拦截,可以让符合条件放行,不符合条件不放行
listener:本质上是一个类,实现了 java 的 Listener 规范,可以监听其它对象(域)的状态变化
Servlet
概述
Servlet 运行在服务端的 Java 小程序,是 sun 公司提供一套规范,用来处理客户端请求、响应给浏览器的动态资源。
servlet 的实质就是 java 代码,通过 java 的 API 动态的向客户端输出内容。
servlet 的作用:
在服务器端接受浏览器带来的请求数据(请求行、请求头、请求体)
给浏览器做响应数据(响应行、响应头、响应体)
servlet 与普通的 java 程序的区别:
- 必须实现 servlet 接口
- 必须在 servlet 容器(服务器)中运行
- servlet 程序可以接收用户请求参数以及向浏览器输出数据