概述
之前面试加改简历,都是外包公司,搞得心乱也没有个好offer。
找工作最重要的还是要自己能力强啊!
继续学习吧。
4 HTTP
4.1 什么是http
HTTP(超文本传输协议) 是一个简单的请求- 响应协议, 它通常运行在TCP之上.
- 文本:html, 字符串…
- 超文本:图片, 音乐, 视频, 定位, 地图…
- 80
- Https:安全的 端口 :443
4.2 两个时代
- http1.0
- HTTP/1.0 :客户端可以与web服务器连接后, 只能获得一个web资源, 断开连接
- http2.0
- HTTP/1.1: 客户端可以与web服务器连接后, 可以获得多个web资源
4.3 HTTP请求
- 客户端 – 发请求–服务器
GET scheme https //get方法/post方法
host www.baidu.com
filename /
Address 110.242.68.3:443
Status 200 OK
VersionHTTP/1.1
Transferred105.51 KB (436.31 KB size)
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.8,zh-CN;q=0.5,zh;q=0.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
-
请求行
- 请求行中的请求方式: GET
- 请求方式: Get , Post, HEAD,DELETE,PUT,TRACT
- GET: 请求能够携带的参数比较少, 大小有限制, 会在浏览器的地址栏显式数据内容, 不安全, 但是高效
- POST: 请求能够携带的参数没有限制, 大小没有限制, 不会在浏览器的地址栏显式数据内容, 安全, 但不高效
-
消息头
Accept: 告诉浏览器, 他所支持的数据格式 Accept-Encoding: 支持哪种编码格式 GBK UFT8 GB2312 ISO8859-1 Accept-Language:告诉浏览器它的语言环境 Cache-control:缓存控制 Connection 告诉浏览器, 请求万是断开还是保持连接 Host: 主机..
4.4 HTTP响应
-
服务器 – 响应 – 客户端
百度: 响应
Cache-Control private // 缓存控制 Connection keep-alive // 连接 保持 Content-Encoding gzip // 编码 Content-Type text/html;charset=utf-8 // 类型
1.响应体
Accept: 告诉浏览器, 他所支持的数据格式 Accept-Encoding: 支持哪种编码格式 GBK UFT8 GB2312 ISO8859-1 Accept-Language:告诉浏览器它的语言环境 Cache-control:缓存控制 Connection 告诉浏览器, 请求万是断开还是保持连接 Host: 主机.. Refresh:告诉客户端 多久刷新一次 Location: 让网页重新定位;
2.响应状态码(重点)
200: 响应成功
3xx: 请求重定向
- 重定向: 到重新给你的新位置
4xx: 资源不存在; 404
5xx:服务器代码错误 500 , 502网关错误
常见面试题:
当浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来, 经历了什么?
5 Maven
为什么 学习这个技术?
- 在JavaWeb开发中, 需要使用大量的Jar包 我们手动导入
- 如何能够让一个东西自动帮我们导入和配置这个jar包
由此Maven诞生了!
5.1 Maven项目架构管理工具
我们目前用来就是方便导入jar包的!
Maven核心思想: 约定大于配置
- 有约束, 不要去违反
Maven会规定好你该如何去编写我们的Java代码, 必须按照这个规范来.
5.2 下载安装Maven
官网: https://maven.apache.org/download.cgi
下载 Binary zip archive的link, windows下载zip文件.
友情建议:电脑上的所有环境都放在一个文件夹下, 方便管理
镜像:方便下载使用
Maven国外的, 国内有墙,我们访问外网会非常的慢, 翻墙VPN
5.3 配置环境变量
高级系统设置>环境变量>
配置如下配置:
- M2_HOME: MAVEN目录下的bin目录(springboot或springcloud会用到)
- MAVEN_HOME: maven的目录
- 在系统的path中配置MAVEN_HOME
测试Maven是否安装成功 保证必须配置完毕: mvn -version
5.4 阿里云镜像
- 镜像: mirrors
- 作用: 加速我们的下载
- 国内建议使用:阿里云镜像(自己百度)
<mirrors>
<mirror>
<id>alimaven</id>
<name> 阿里云仓库地址 maven public</name>
<url>
https://maven.aliyun.com/repository/public
</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
5.5 本地仓库
在本地的仓库, 远程仓库
建立一个本地仓库: localRepository
<localRepository>D:.m2repository</localRepository>
5.6 在IDEA中使用Maven
1 启动IDEA
2 创建一个MavenWeb项目
- Group Id : com.kuang
- ArtifactId: javaweb-01-maven
设置maven地址, 用户设置文件, 本地仓库
3 等待项目初始化完毕
4 观察maven项目中有什么变化
5 IDEA中的Maven设置
注意:IDEA项目创建成功后, 看一眼Maven的配置
IDEA中配置Maven
注意: 经常在IDEA中会出现一个问题, 就是项目自动创建完成后, MavenHome会使用IDEA默认地址, 如果发现这个问题, 我们手动改为本地的.
6 到这里, Maven在IDEA中的配置和使用就ok了
5.7 创建一个普通的Maven项目
IDEA中不勾选create from archetype中的maven- web模板, 直接创建一个普通的maven项目.
所有项目:
srcmainjava :放置源代码的
srcmainresources: 放置一些配置文件
srctestjava :测试代码
web项目里面:
srcmainwebappWEB-INF: Web的配置
srcmainindex.jsp: 网页
5.8 在IDEA中标记文件夹功能
在之前的web项目里手动添加两个文件夹java 跟resources,然后更改为相应的文件夹模式.
5.9 在IDEA中配置Tomcat
解决警告问题:
必须要的配置: 为什么会有这个问题: 我们访问一个网站,需要指定一个文件夹的名字
Application Context: 可以写,也可以不写
不写:默认访问路径为localhost:8008
假如写了/kuang: 访问路径就成了localhost:8080/kuang
这个过程叫做:虚拟路径映射
5.10 Pom文件
Maven的界面
pom.xml是Maven的核心配置文件
<?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>
<!--Package: 项目的打包方式
jar:java应用
war: javaWeb应用
-->
<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.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<!--项目依赖-->
<dependencies>
<!--具体依赖的jar包配置文件-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--maven的高级之处在于,它能帮你导入这个jar包依赖的其他jar包-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.19</version>
</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>
Maveny由于它的约定大于配置, 我们之后可能会碰到我们写的配置文件,无法被导出或者生效的问题。我们解决方案:
<!--在build中配置resources, 防止我们资源导出失败的问题-->
<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>
5.11 IDEA中的操作
生成目录树
5.13 解决遇到的问题
-
Maven 3.6.2 : 无法导入Maven project :JDK问题
-
解决方法:降级为3.6.1,可能是版本兼容问题
-
Tomcat闪退
-
问题:没有配置JAVA_HOME或者是JRE_HOME的环境变量
-
IDEA每次都要重复配置Maven
-
在IDEA中的全局默认配置中去配置
-
Maven项目中Tomcat无法配置
-
全局变量配置
-
Maven默认Web项目中的web.xml版本太老了
-
参考tomcat里面的设置,替换为tomcat web.xml里面的4.0版本
<?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仓库的使用
- 地址mvnrepository.com
- tomcat能够使用就说明tomcat的lib包里面是有这个包的,在lib里面可以找一下
最后
以上就是自觉发带为你收集整理的2022年5月17日 【狂神说Java】JavaWeb入门到实战4 HTTP Maven4 HTTP5 Maven的全部内容,希望文章能够帮你解决2022年5月17日 【狂神说Java】JavaWeb入门到实战4 HTTP Maven4 HTTP5 Maven所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复