前言
- Java Web 其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现.在加上各种中间件。
- 整个javaWeb阶段的内容通过实际的案例贯穿学习, 所涉及到的技术知识点会在案例中根据不同的需求引入。
- 首先了解javaWEB的整个技术体系,掌握常用的技术知识点。
我会将JavaWeb分为8篇左右的文章来记录自己的学习过程,也方便大家逐级递增难度的学习,如有错误或遗漏欢迎大家指出。
注:本篇文章承接上一篇JavaWeb文章JavaWeb--基本概念、Web服务器与Tomcat
下面我们进入正题!
4、HTTP
4.1、什么是HTTP
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
http端口:80 https端口:443 (s代表安全)
- 文本:html,字符串,...
- 超文本:图片,音乐,视频,定位,地图....
4.2、两个时代
- http1.0
- HTTP/1.0:客户端可以与Web服务器连街沟,只获得一个web资源,断开连接
- http2.0
- HTTP/1.1:客户端可以与Web服务器连街沟,可以获得多个web资源
4.3、HTTP请求
-
客户端------发请求(request)-----服务器
Request URL: https://www.baidu.com/ //请求地址(以百度为例) Request Method: GET //GET/POST方法 Status Code: 200 OK //状态码:200代表OK Remote Address: 110.242.68.3:443 //地址 Referrer Policy: strict-origin-when-cross-origin //协议
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9//语言 Cache-Control: max-age=0 Connection: keep-alive
-
请求行
-
消息头
Accept: //告诉浏览器它所支持的数据类型 Accept-Encoding: //支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1 Accept-Language: //告诉浏览器他的语言环境 Cache-Control: //缓存控制 Connection: //告诉浏览器,请求完是断开还是保持连接 HOET: //主机
4.4、HTTP响应
- 服务器-----响应(response)-----客户端
Cache-Control: private // 缓存控制 Connection: keep-alive // 连接 Content-Encoding: gzip // 编码 Content-Type: text/html;charset=utf-8 // 类型
- 响应体
Accept: //告诉浏览器它所支持的数据类型 Accept-Encoding: //支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1 Accept-Language: //告诉浏览器他的语言环境 Cache-Control: //缓存控制 Connection: //告诉浏览器,请求完是断开还是保持连接 HOET: //主机 REFRESH: //告诉客户端多久刷新一次 Location: //让网页重新定位
-
响应头
200:请求响应成功
202:接受
3**:
- 重定向:你重新到我给你的新位置去
400:错误的请求
404:找不到资源
5**:服务器代码错误(502网关错误)
5、Maven
- 在JAvaweb开发中,需要使用大量的jar包,我们需要手动导入
- 如何能够让一个东西自动帮我们导入和配置这个jar包
5.1、Maven项目架构管理工具
我们目前用来就是方便导入jar包的
Maven的核心思想:约定大于配置
- 有约束不要去违反
Maven会规定好你该如何去编写我们的Java代码,必须要按照规范
5.2、下载安装Maven
具体下载步骤大家可以参考这篇博客maven安装及配置(详细版)
这里尤其要注意Maven版本与IDEA版本对应的问题
官网;https://maven.apache.org/
这里我保存的位置是:E:JavaBackendMavenapache-maven-3.5.2
5.3、配置环境变量
在我们的系统环境变量中
配置如下配置:
- M2_HOME maven目录下的bin目录
- MAVEN_HOME maven的目录
- 在系统的path中配置%MAVEN_HOME%bin
测试是否安装成功
5.4、阿里云镜像
- 镜像:mirrors,可以加速我们的下载
setting.xml配置文件位置
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
5.5、本地仓库
本地仓库 localRepository,远程仓库
建立一个仓库:
- 原来的地址:
C:Users86134.m2repository
- 修改后的地址:
<localRepository>E:/JavaBackend/Maven/apache-maven-3.5.2/maven_repository</localRepository>
5.6、在IDEA中使用Maven
-
启动IDEA
-
创建一个Mavenweb项目
3.等待项目初始化完毕
4.观察maven仓库中多了哪些东西
5.idea中的maven设置(idea中经常使用自带的maven,需要手动修改,退出项目在最开始的页面可以修改默认设置)
5.7、创建一个普通maven项目
5.8、标记文件夹功能
(1)
(2)
5.9、在idea中配置Tomcat
(1)
(2)
(3)警告问题:我们访问一个网站的时候,需要指定一个文件夹名字
(4)启动测试
5.10、pom文件
pom.xml是maven的核心配置文件
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <!--maven的版本和头文件--> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!--这里就是我们刚才配置的GAV--> <groupId>org.example</groupId> <artifactId>Javaweb-01-maven</artifactId> <version>1.0-SNAPSHOT</version> <!--packaging打包方式 java:jar Javaweb:war --> <packaging>war</packaging> <name>Javaweb-01-maven Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <!--配置--> <properties> <!--项目的默认构建编码--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--编码版本--> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <!--项目依赖--> <dependencies> <!--maven会帮你导入这个jar包所依赖的其他jar包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <!--项目构建用的东西--> <build> <finalName>Javaweb-01-maven</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project>
在build中配置resources,来防止我们资源导出失败的问题
<!-- 在build中配置resources , 来防止我们资源导出失败的问题--> <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> </resources> </build>
5.11、Maven仓库的使用
常见的问题
-
maven版本与jdk版本不相容(jdk1.8 maven3.5)
-
Tomcat闪退
-
IDEA中每次都要重复配置Maven(修改全局)
-
Maven项目中Tomcat无法配置
-
Maven默认web项目中的web.xml版本问题
-
- 替换为webapp4.0版本和Tomcat一致
<?xml version="1.0" encoding="UTF-8"?> <web-app metadata-complete="true" version="4.0" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"> </web-app>
-
到这里关于Http和Maven知识就结束啦≧ω≦,希望大家都有所收获!