Http
什么是Http?
Http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 文本:html,字符串,~ ….
- 超文本:图片,音乐,视频,定位,地图…….
- HTTP的端口:80
Https协议:安全的 (端口是:443)
两个时代
- http1.0
- Http/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接。
- http2.0
- Http/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
Http请求
- 客户端—发请求(Request)—服务器
百度的请求:
Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status Code:200 OK 状态码:200
Remote(远程) Address:14.215.177.39:443
Accept:text/html
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9 语言
Cache-Control:max-age=0
Connection:keep-alive
- 请求行:
- 请求行中(Request Method)的请求方式:GET
- 请求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效;
- post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
- 消息头(请求头)
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../
Http响应
- 服务器—响应-----客户端
百度的响应:
Cache-Control:private 缓存控制
Connection:Keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
- 响应体:
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;
- 响应状态码:
200:请求响应成功
3xx:请求重定向 (重定向:你重新到我给你的新位置去)
4xx:找不到资源 404 (Web资源不存在)
5xx:服务器代码错误 500 (502:网关错误)
Maven
为什么要学Maven
1.在Javaweb开发中,需要使用大量的jar包,我们手动去导入;
2.如何能够让一个东西自动帮我导入和配置这个jar包。由此,Maven诞生了!
Maven项目架构管理工具
我们目前用来就是方便导入jar包的!
Maven的核心思想:约定大于配置
- 有约束,不要去违反。
Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来;
下载安装Maven
官网:https://maven.apache.org/
下载完成后,解压到指定路径即可
配置环境变量
在我们的系统环境变量中
配置如下配置:
- M2_HOME ---- maven目录下的bin目录
- MAVEN_HOME ---- maven的目录
- 在系统的path中配置 ---- %MAVEN_HOME%\bin
测试Maven是否安装成功:
1.打开黑窗口
2.输入mvn -version,若出现上述图的内容则安装并配置成功
阿里云镜像
1.打开maven 文件夹里的conf文件夹
2.找到并打开配置文件->settings.xml
3.找到 mirrors 并加入下面代码块里的内容
- 镜像:mirrors
- 作用:加速我们的下载(不使用镜像 导入maven的仓库特别慢)
- 国内建议使用阿里云的镜像
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
本地仓库
在本地的仓库,远程仓库;
建立一个本地仓库:localRepository
- 1.打开maven 文件夹里的conf文件夹
- 2.找到并打开配置文件->settings.xml
- 3.找到 localRepository 并加入你创建的本地仓库的路径 ,例如你的仓库路径是:D:\Environment\apache-maven-3.6.2\maven-repo,你就加入下列代码块的内容
<localRepository>D:\Environment\apache-maven-3.6.2\maven-repo</localRepository>
在IDEA中使用Maven
1.启动IDEA
2.创建一个MavenWeb项目
3.等待项目初始化完毕
4.观察maven仓库中多了什么东西?
5.IDEA中的Maven设置
注意:IDEA项目创建成功后,看一眼Maven的配置
6.到这里,Maven在IDEA中的配置和使用就OK了!
创建一个普通的Maven项目
创建好后,在main包下建java包(放置java源代码)和resources包(放置配置文件的)
下图这个只有在Web应用下才会有!可以判断你建的是不是Web项目
IDEA标记文件夹功能
方式一:点击包名并右键,按下图操作即可
方式二:点击IDEA左上角的file进行配置
在IDEA中配置Tomcat
!
解决警告问题
必须要的配置:为什么会有这个问题:我们访问一个网站,需要指定一个文件夹名字;
pom文件夹
pom.xml 是Maven的核心配置文件
maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题,解决方案:在build中配置resources
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
解决遇到的问题
- jdk1.8用Maven3.6.2时可能会遇到
解决方案:将Maven降级为3.6.1 - Tomcat闪退
解决方案:查看环境变量是否配置正确 - IDEA中每次都要重复配置Maven
解决方案:在IDEA中的全局默认配置中去配置
4. maven默认web项目中的web.xml版本问题
解决方案:替换为webapp4.0版本和tomcat一致,将web.xml的内容改为下面代码块的内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
</web-app>
- Maven仓库的使用
地址:https://mvnrepository.com/
经常需要依赖的jar包如下:
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>