JavaWeb--HTTP与Maven
前言
- 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版本与IDEA版本对应的问题
官网;https://maven.apache.org/
这里我保存的位置是:E:\JavaBackend\Maven\apache-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:\Users\86134\.m2\repository
- 修改后的地址:
<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知识就结束啦≧ω≦,希望大家都有所收获!

JavaWeb--HTTP与Maven的更多相关文章
- 传统javaweb 改成 Maven项目
1. 项目右键-- Configure --Convert to Maven Project 后可以生成maven结构,多了红色框的 <project xmlns="http:/ ...
- (一)使用IDEA新建一个最简单的JavaWeb项目,Maven管理
1.项目环境 IDEA:2016.2 JDK:1.8.0_76 Maven:3.2.5 2.File-->New-->Project-->Maven 3.选择Project SDK: ...
- 如何用Eclipse将普通的JavaWeb项目转为Maven项目
最新自己的第一个项目差不多稳定运行之后 想着将项目转为Maven项目.于是参考网上成功的将自己的普通的项目转为了maven项目,现在记录一下: 0.普通的java项目的结构如下: 1.接下来开始进行正 ...
- 原创: idea 的maven 方式配置 开发javaWeb(idea+tomcat +maven
通过idea 编辑器来配置基于maven创建站点,在tomcat上配置 在采用idea 配置之前,首先要确保maven和 tomcat 正确运行. maven 配置链接 tomcat 配置链接 实际你 ...
- 【JavaWeb】【Maven】001 下载与配置
Maven下载与配置 Download Url:Maven – Download Apache Maven After downloading it, unpack it and configure ...
- 将javaWeb项目转maven项目
不经常做此类转换,所以总是忘记转换方法,特此,记录下转换步骤 1.首先从SVN检出项目 2.找到导出项目路径 3.按住Shift+鼠标右键,打开控制台 3.输入命令mvn eclipse:eclips ...
- Eclipse 创建 Maven 项目、Maven JavaWeb 项目
Eclipse 创建 Maven 项目 新建一个maven项目 (默认)(如果不行第一个Create a simple ... 也选中) 默认 Jav ...
- MyEclipse10.6、Maven、svn集成
这几天整理maven,根据开发部署需要,需要把原先的myeclipse下的普通javaWeb工程用maven管理,弄了2天,主要还是在jar包的引入上,总是少- -! 好了,下面记录一下我的安装过程: ...
- 一:使用maven构建项目
一般情况下:使用maven构建项目有两种情况: 1:用maven构建java项目: 2:用maven构建javaweb项目: 还有一种经常需要使用到的就是用maven构建项目模块:如:一个父项目用来作 ...
- Maven详解(非原创)
文章大纲 一.maven功能介绍二.maven整合javaweb案例三.私服应用(了解)四.总结五.相关资料下载六.参考文章 一.maven功能介绍 1. maven基本介绍 Maven的Apac ...
随机推荐
- Yapi Docker 部署
参考 https://github.com/Ryan-Miao/docker-yapi , 并使用该代码的脚本构建yapi image. 部署mongodb docker run \ --name m ...
- uniapp封装request方法及调用
export default { doRequest(method, url, data) { // 如果data为空 if (!data) var data = [] var arr = [] ar ...
- vivo 万台规模 HDFS 集群升级 HDFS 3.x 实践
vivo 互联网大数据团队-Lv Jia Hadoop 3.x的第一个稳定版本在2017年底就已经发布了,有很多重大的改进. 在HDFS方面,支持了Erasure Coding.More than 2 ...
- spring boot validation
先简单打个草稿 @NotNull 不能为 null @NotEmpty 不能为空(允许空格) ,只能用于字符串 @NotBlank 不能为空(trim()后) 用于验证字符串不为空且不能全为空格,只能 ...
- linux篇-linux数据库mysql的安装
1数据库文件放到opt下面 2赋予权限775 3运行脚本 4运行成功 5数据库操作 密码修改并刷新 权限修改,允许外部设备访问 6工具连接 7附录 1.显示当前数据库服务器中的数据库列表: mysql ...
- AGC007E Shik and Travel 解题报告
AGC007E Shik and Travel 题目大意:\(n\) 个点的二叉树,每个点要么两个儿子,要么没有儿子,每条边有边权. 你从 \(1\) 号节点出发,走到一个叶子节点.然后每一天,你可以 ...
- 关于『HTML5』第一弹
关于『HTML5』:第一弹 建议缩放90%食用 祝各位国庆节快乐!!1 经过了「过时的 HTML」.「正当时的 Markdown」的双重洗礼后,我下定决心,好好学习HTML5 这回不过时了吧(其实和 ...
- 解锁!玩转 HelloGitHub 的新姿势
本文不会涉及太多技术细节和源码,请放心食用 大家好,我是 HelloGitHub 的老荀,好久不见啊! 我在完成 HelloZooKeeper 系列之后,就很少"露面了".但是我对 ...
- CSP J/S 初赛总结
CSP J/S 初赛总结 2021/9/19 19:29 用官方答案估计 J 涂卡的时候唯一的一支 2B 铅笔坏了,只能用笔芯一个个涂 选择 \(-6\ pts\) 判断 \(-3\ pts\) 回答 ...
- 17.Nginx 重写(location rewrite)
Nginx 重写(location / rewrite) 目录 Nginx 重写(location / rewrite) 常见的nginx正则表达式 location lication的分类 loca ...
