图床路径
Kuang/JavaWeb
Java Web
1、基本概念
web开发
- web,网页的意思,www.baidu.com
- 静态web
- html,css
- 提供给所有人看的数据,始终不会变化!
- 动态web
- 淘宝,几乎是所有的网站;(千人千面)
- 提供给所有人看的数据,始终会变化,每个人在不同的时间,地点看到的信息各不相同。
- 技术栈:ServLet/JSP,ASP,PHP
在 Java 中,动态 web 资源开发的技术统称为 JavaWeb
1.2、Web 应用程序
什么是程序
Web 应用程序:可以提供浏览器访问的程序;(提供DOS命令访问的程序,CS架构。😖)
- a.html、b.html…多个web资源,这些资源可以被外界访问,对外界提供服务。
- 在互联网上能够访问到的任何一个页面或者资源,都存在于世界的某一个角落的计算机上。
- 资源是真实存在的,URL(统一资源定位符),网络世界的通讯地址。
- URL,这些统一的web资源会被放在同一个文件夹下,
- 通过 web 应用程序,(Tomcat服务器)来提供。
- 一个web应用程序由多部分组成:(静态web,动态web)
- html,css,js
- jsp,servlet
- java程序
- jar包
- 配置文件(Properties)
web应用程序编写完毕之后,若想提供给外界访问:需要一个服务器来统一管理,
🧐思:
站在旁观者角度,有一堆资源,放在了一台电脑上,电脑上安装了一个服务器(Tomcat),来统一管理,为了与来访者交互,服务器设置了一些应用程序,针对不同来访者,采取不同方式响应。来访者看似只是鼠标的点击行为,实质是通过URL来访问应用程序,变相的访问一堆文件夹路径。(和你访问自家电脑的文件类似),通过域名解析IP地址,找到真实的电脑,通过web应用程序,类似资源管理器,访问文件夹的路径,找到文件所在,访问文件,(html,css,js,jsp,图片,视频,等等)。
1.3、静态web
- *.htm、*.html,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取。网络:
![network](https://img-blog.csdnimg.cn/img_convert/194ade00859f8d034c1fd5de78af1fc9.png)
1.4、动态web
页面会动态展示:“web页面展示的效果因人而异“;
![network](https://img-blog.csdnimg.cn/img_convert/9c16014ead155d2250d227596b7b941f.png)
缺点:
- 服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布;
优点:
- web页面可以动态更新,所有用户看到的都不是同一个页面
- 它可以和数据库交互(数据持久化:注册,个人信息)
- 架构师更牛逼
新手村:–魔鬼训练(分析原理,看源码)–>PK场
2、Web服务器
2.1、技术讲解
ASP,
- 微软:国内最早流行的就是ASP;
- 在HTML中嵌入了VB的脚本,ASP+COM;
- 在ASP开发中,基本一个页面都有几千行的业务代码,页面极其混乱。
- 维护成本高!
- C#
- IIS服务器
![image-20200907064208773](https://img-blog.csdnimg.cn/img_convert/1f382cc54d4eb900bef838e041223d51.png)
PHP
- 开发速度快,功能很强大,跨平台,代码很简单()
- 无法承载大访问量的情况(局限性)
JSP/Servlet:
- B/S:浏览器和服务器
- C/S:客户端和服务器
- sun公司主推的B/S架构
- 基于Java语言的(所有大公司,或者一些开源的组件,都是用java写的)
- 可以承载三高问题带来的影响;(高并发,高可用,高性能)
- 语法像ASP,ASP–>JSP,加强市场强度;
…
2.2、web服务器
服务器是一种被动操作,用来处理用户的一些请求和给用户一些响应信息;
IIS
微软的,ASP…
Tomcat
面向百度编程:
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学Web者来说,它是最佳的选择。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0.37**。**
Tomcat,IIS…
工作3-5年之后,可以尝试手写Tomcat服务器:三天足以
下载Tomcat:
- 安装或者解压
- 了解配置文件及目录结构
- 这个东西的作用
目录结构:(反射和多线程所学)
jdk和jre的区别:一个.java,一个.class
![image-20200907070457224](https://img-blog.csdnimg.cn/img_convert/0e37148de8686205db5f739e1010aa69.png)
3、Tomcat
3.1、安装Tomcat
Tomcat官网:http://tomcat.apache.org/
采用了Tomcat 9 的版本
![image-20200907071326917](https://img-blog.csdnimg.cn/img_convert/2e5c004c1bbcb37e0f9f012aaa831b6f.png)
![image-20200907071541196](https://img-blog.csdnimg.cn/img_convert/50026a5a0333dcccd8c006962cc2a9b7.png)
3.2、Tomcat启动和配置
文件夹目录
![image-20200907072238162](https://img-blog.csdnimg.cn/img_convert/c814003b959b899820ec8d4c9836d333.png)
启动和关闭Tomcat
![image-20200907072402890](https://img-blog.csdnimg.cn/img_convert/ccfaabb7d7ef4bde4d6f06c68e319b71.png)
Tomcat界面
![image-20200907072513237](https://img-blog.csdnimg.cn/img_convert/ce80279fed3dfccf95f5803516ce7bb7.png)
启动测试:http://localhost:8080/
![image-20200907072634189](https://img-blog.csdnimg.cn/img_convert/46668ff5942670b2ec01c52719a4babf.png)
启动测试:http://localhost:8080/
可能遇到的问题:
- Java环境变量没有配置(可能会闪退)
- 闪退问题:需要配置兼容性
- 乱码问题:配置文件中设置
一个文件夹代表一个web应用
jsp就是在HTML里面嵌入一些java代码
乱码问题:
![image-20200907073231274](https://img-blog.csdnimg.cn/img_convert/3056d1d934696d7042f3381fd2c87e8e.png)
服务器核心配置文件
![image-20200907073415028](https://img-blog.csdnimg.cn/img_convert/8146976eed17c32504b41bfecc021db1.png)
3.2.1、修改访问页面
修改D:\Java\apache-tomcat-9.0.37\webapps\ROOT
下的index.jsp
,修改之后刷新即可,不需要重启服务器的呀😖
![image-20200907074201134](https://img-blog.csdnimg.cn/img_convert/4a2ac7c20d2fc507b085098e257cbb7f.png)
![image-20200907074349326](https://img-blog.csdnimg.cn/img_convert/1152c3a72ff1d4da8d1592dcfc3e8619.png)
3.2.2、修改访问端口号
修改D:\Java\apache-tomcat-9.0.37\conf
下的server.xml
,更改了服务器的配置文件,必须重启服务器,否则无法生效。
![image-20200907075010599](https://img-blog.csdnimg.cn/img_convert/a23b53996b15daac4445d8e620ee5266.png)
![image-20200907075153323](https://img-blog.csdnimg.cn/img_convert/b3dc7f5fc2a281af6c3ae2e6edd62074.png)
3.2.3、修改域名
修改D:\Java\apache-tomcat-9.0.37\conf
下的server.xml
,更改了服务器的配置文件,必须重启服务器,否则无法生效。
不要修改引擎里面的哦,修改<Host>标签中的,修改之后还可以访问到吗?
![image-20200907075537355](https://img-blog.csdnimg.cn/img_convert/23dfdd3290c394724c095337d0f5f6cc.png)
![image-20200907075925435](https://img-blog.csdnimg.cn/img_convert/6ea87739c65f831f3447498f6b94f348.png)
修改C:\Windows\System32\drivers\etc
下的hosts
文件,更改了服务器的配置文件,必须重启服务器,否则无法生效。
Windows底层文件被修改,提示权限不够,采用管理员模式启动。
hosts中英文翻译
微软公司版权所有
这是Microsoft TCP/IP用于Windows的一个样例主机文件。
这个文件包含IP地址到主机名的映射。每一项都应单独列在一行上。IP地址应该放在第一列,后面跟着相应的主机名。
IP地址和主机名之间至少要有一个空格。
#此外,注释(比如这样的注释)可以插入到单独的行中,或者插入到由’#'符号表示的机器名称之后。
本地主机名解析在DNS本身中处理。
![image-20200907080937575](https://img-blog.csdnimg.cn/img_convert/b1f32a98e1de1b1d68adf1c652c48816.png)
![image-20200907081418202](https://img-blog.csdnimg.cn/img_convert/d9caa00bc1a37d8aff81ba0184a8e49c.png)
3.2.4、修改应用存放目录
![image-20200907082529892](https://img-blog.csdnimg.cn/img_convert/dda09576767def7bad03a0d8ae2df3d7.png)
![image-20200907084528269](https://img-blog.csdnimg.cn/img_convert/194ade00859f8d034c1fd5de78af1fc9.png)
3.2.5、总结
可以配置启动的端口号
- Tomcat 的默认端口号为:8080
- MySQL 的默认端口号为:3306
- HTTP 的默认端口号为:80
- HTTPS 的默认端口号为:443
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
可以配置主机名称
- 默认的主机名称:
localhost-->127.0.0.1
- 默认的网站应用存放的位置为:
webapps
文件夹
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
🧐思:
高难度面试题:
四面:请你谈谈网站是如何进行访问的!
-
输入一个域名;回车
-
检查本机的C:\Windows\System32\drivers\etc\hosts
配置文件下有没有这个域名的映射
127.0.0.1 baba
- 没有,去DNS服务器找,找到的就返回IP地址,找不到就返回错误信息。
4、可以配置一下环境变量(可选性)
3.3、发布一个网站
不会就模仿
![image-20200907083823559](https://img-blog.csdnimg.cn/img_convert/70a8dca4d950a3ffdbcfd1df9fb52e24.png)
![Diagram](https://img-blog.csdnimg.cn/img_convert/185849538aeaf25cdbb5984009992d6e.png)
自学素材:
![image-20200907084841943](https://img-blog.csdnimg.cn/img_convert/6becae56d277569fdb712c53ac45fde2.png)
3.5、网站结构(也是约定)
- 将自己写的网站,放到服务器(Tomcat)中指定的web应用程序的文件夹下,就可以访问了
- 网站应有的结构:
--webapps:Tomcat服务器的web目录
--ROOT
--qmei:网站的目录名
--WEB-INF
--classes :java程序
--lib:web应用所依赖的jar包
--web.xml:网站配置文件
--index.html 默认的首页
--static 静态资源文件
--css
--style.css
-js
--img
--...
4、HTTP
http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 文本:html,字符串,-…
- 超文本:图片,音乐,视频,定位,地图…
- 80
https:(s 安全的)
4.2、两个时代
- http1.0
- HTTP/1.0 :客户端可以与web服务器连接后,只能获得一个web资源,断开连接(烧流量)
- http2.0
- HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源,不用每次请求连接
4.3、Http请求
- 客户端–发请求(Request)–服务器
- 百度:General
Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK
Remote Address: 14.215.177.38:443
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
1、请求行
- 请求行中的请求方式:GET
- 请求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
- GET:一次请求可以携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效。
- POST:一次请求可以携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
2、消息头
Accept:
Accept-Encoding:
Accept-Language:
Cache-Control:
Connection:
HOST:
...
4.4、Http响应
Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK
Remote Address: 14.215.177.38:443
1.响应体
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Accept:
Accept-Encoding:
Accept-Language:
Cache-Control:
Connection:
HOST:
Refresh://告诉客户端多久刷新一次
Location:
...
2,响应状态码
200:请求响应成功 200
3xx:请求重定向
4xx:找不到资源 404
5xx:服务器代码错误 500 502:网关错误
常见面试题:
二面:当你的浏览器中地址栏输入地址并回车的一瞬间到页面=能够展示回来,经历了什么?
500字左右作文
![image-20200907102424751](https://img-blog.csdnimg.cn/img_convert/38f0ca3447588a82ac48c6803c1da97b.png)
5、Maven
我为什么要学习这个技术?
1,在 JavaWeb 开发中,需要使用大量的 jar 包,我们手动去导入:
2,如何能够让一个东西自动帮我们导入和配置这个 jar 包。
由此,Maven 诞生了!
5.1、Maven项目架构管理工具
我们目前就是用来方便导入jar包的!
5.1.1、Maven核心思想
Maven的核心思想:约定大于配置
Maven会规定好你该如何去编写我们的java代码,必须要按照这个规范来:
5.2、下载安装
官网:http://maven.apache.org/ 又是apache阿帕奇的
![image-20200907105711520](https://img-blog.csdnimg.cn/img_convert/c0c28887367c51206c5a6fa3e32a3486.png)
最新的并不一定是最好的
三部曲:
- 安装或者解压
- 了解配置文件及目录结构
- 这个东西的作用
文件目录结构
![image-20200907110321107](https://img-blog.csdnimg.cn/img_convert/dc569e8d5c53a05bb1619cf68f795198.png)
5.3、配置环境变量
配置如下:系统环境变量,不是用户变量
- MAVEN_HOME maven的目录(类似JAVA_HOME)
- M2_HOME maven目录下的bin目录(以后用到,比如spring,springboot)
![image-20200907110833983](https://img-blog.csdnimg.cn/img_convert/a4e533cc7b0961f27f58bd6b31f110b3.png)
![image-20200907111123968](https://img-blog.csdnimg.cn/img_convert/9fe4b91d49dab1e1fa3741aa7436b6f3.png)
类似 JDK,检测是否安装成功,打开cmd,输入:
mvn -version
注意:mvn来源于bin目录下的mvn
![image-20200907111531109](https://img-blog.csdnimg.cn/img_convert/4a35f5982ee6343ccaa4b8c922177bd3.png)
![image-20200907111607151](https://img-blog.csdnimg.cn/img_convert/c48e5660218c90c80584e60d58ad6857.png)
5.4、配置阿里云镜像
- 镜像:mirrors
- 国内建议使用阿里云镜像
- 百度一下:Maven 阿里云镜像
- 出来一堆,说明生态好,学习才有意思
放在D:\Java\apache-maven-3.6.3\conf\settings.xml的<mirrors></mirrors>
标签中
<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>
5.5、本地仓库
在本地的仓库,远程仓库
建立一个本地仓库,可以配多个的哦!
在D:\Java\apache-maven-3.6.3\conf\settings.xml
中找到如下信息:
Default: ${user.home}/.m2/repository <!--默认的仓库地址-->
<localRepository>/path/to/local/repo</localRepository>
修改为:
<localRepository>D:\Java\apache-maven-3.6.3\maven-repository</localRepository>
同样的,在文件夹路径下需要新建文件夹:
![image-20200907112751653](https://img-blog.csdnimg.cn/img_convert/d0c5a73b267d29f95ee47eeb494cf243.png)
5.6、在IEDA中使用Maven
1.启动IEDA
2.创建一个Maven Web项目
![image-20200907113520751](https://img-blog.csdnimg.cn/img_convert/5d43d43705df61604f99f36a79bbc2cf.png)
![image-20200907113930316](https://img-blog.csdnimg.cn/img_convert/b1556f51bff4561c6e8d6ff587c1199e.png)
![image-20200907114346770](https://img-blog.csdnimg.cn/img_convert/3192fbdd3aeae89441f2bb961d2441c7.png)
3,等待项目初始化完成
- 自动导入包
- 当在【Messages】中看见了**[INFO] BUILD SUCCESS** ,表示初始化完成。
- 项目构建成功
- 本地仓库肯定有东西了
![image-20200907115414350](https://img-blog.csdnimg.cn/img_convert/c1414143e1265e914f842000ba591bed.png)
5.7、IDEA中的Maven设置
IDEA项目创建成功之后,看一眼Maven的配置。
![image-20200907120202724](https://img-blog.csdnimg.cn/img_convert/caef7f6b23674511ca6b61119605f495.png)
![image-20200907120543059](https://img-blog.csdnimg.cn/img_convert/88e684dfb02d108a6eed82a2fd961a92.png)
5.8、创建一个普通的Maven项目
不再勾选【Create from archetype】
就只有GAV和项目存放地址的配置了,没有了MUL三大路径配置了,响应了上文的IEDA默认配置Maven的问题。
![image-20200907120202724](https://img-blog.csdnimg.cn/img_convert/99b1ff5d1fff36a6b4f33b3109453df3.png)
![image-20200907122045710](https://img-blog.csdnimg.cn/img_convert/3bc6ae3c6d528364857778ab765f7f46.png)
这个是只有在web应用中才会有的目录【webapp】,其中的【java】和【resources】是自己后来加上的,然后【Mark Directory as】的
![image-20200907122324805](https://img-blog.csdnimg.cn/img_convert/22ad94ace6c73e393460fa701bfd0af3.png)
5.9、标记文件夹功能
![image-20200907123636733](https://img-blog.csdnimg.cn/img_convert/730063bf0bd0f4a835ab9d9789f497fb.png)
![image-20200907124034072](https://img-blog.csdnimg.cn/img_convert/888d1369e45418d54dad248d8d507721.png)
5.10、Maven的目录结构(约定)
目录结构
--项目名
--src
--main
--java
--resources
--webapp
--WEB-INF
--web.xml
--网页
--test
--java
5.11、在IDEA中配置Tomcat
点击配置按钮
![image-20200907124356055](https://img-blog.csdnimg.cn/img_convert/2d050b686b6c33191c490b37d7b8ded2.png)
选择Tomcat服务器
![image-20200907124812191](https://img-blog.csdnimg.cn/img_convert/6c047fb8f1c771afa971bf3fc0c74b84.png)
配置Tomcat服务器,纠正,不是web.xml,而是【server.xml】
![image-20200907125829259](https://img-blog.csdnimg.cn/img_convert/88a87ddc1cf04fdd24a92d3bd143055a.png)
5.11.1、指定网站访问的文件夹
必须要的配置:为什么有这个问题:我们访问一个网站,需要指定一个文件夹,访问指定的目录文件资源。
解决警告问题
![image-20200907130113992](https://img-blog.csdnimg.cn/img_convert/b1d7309bc790b5b9a0ac264bd8b2ee10.png)
虚拟路径映射
![image-20200907130944491](https://img-blog.csdnimg.cn/img_convert/704a87f6a42fe7606d8d2fd61ec1cc7c.png)
点击右上角的三角符号,等待Tomcat的启动,在【services】中看见了【Connected to server】表示连接成功!
![image-20200907131353948](https://img-blog.csdnimg.cn/img_convert/0677d2e9ccc4d9c996c39b86f755e2ae.png)
在Tomcat的文件目录中多了一个文件夹,就是刚刚设置的访问路径
![image-20200907132311062](https://img-blog.csdnimg.cn/img_convert/52228123a1d21bd60a61663ada799e12.png)
5.12、pom文件
Maven的核心文件
![image-20200907132927013](https://img-blog.csdnimg.cn/img_convert/b9c5c188905c812051a0370b6f38ef2d.png)
pom.xml 干净文件
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.qm</groupId>
<artifactId>javaweb-maven</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
使用模板生成的文件
<?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>com.qm</groupId>
<artifactId>javaweb-01-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging> <!--package:项目的打包方式:jar,java应用,war,javaweb应用-->
<!--一些没必要的名称,可以删-->
<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>
<!--编译时候输出的默认版本,可以改,1.8等-->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!--项目依赖-->
<dependencies>
<!--具体依赖的Jar包配置-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</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>
5.12.1、Maven 仓库
百度 Maven 仓库
官网:https://mvnrepository.com/
![image-20200907182250822](https://img-blog.csdnimg.cn/img_convert/414fa61fc4ae5a8edb60cad9a971a19c.png)
直接复制配置代码来使用
![image-20200907182452633](https://img-blog.csdnimg.cn/img_convert/414fa61fc4ae5a8edb60cad9a971a19c.png)
会自动下载jar包
Maven的高级之处在于,会自动导入jar包,而且会自动导入这个jar包所依赖的其他jar包
![image-20200907183035709](https://img-blog.csdnimg.cn/img_convert/414fa61fc4ae5a8edb60cad9a971a19c.png)
正常Maven,不用IDEA也可以新建成功
😖模板里嵌入了一些东西,我们无法修改,所以不推荐用java,即这个Maven,去创建一个web项目,我们都是手动创建一个web项目。
依赖的问题
![image-20200907135026710](https://img-blog.csdnimg.cn/img_convert/414fa61fc4ae5a8edb60cad9a971a19c.png)
修改字体风格
![image-20200907134504785](https://img-blog.csdnimg.cn/img_convert/414fa61fc4ae5a8edb60cad9a971a19c.png)
5.12.2、配置文件无法导出或生效
Maven由于它的约定大于配置,我们之后可能会遇到我们写的配置文件,无法被导出或者生效的问题,解决方案:
百度:Maven 资源导出问题 博客园
博客园质量高
在build中配置resources,来防止我们的资源导出失败的问题,因为在java和resources中被定死了,java只能写java文件,所以采用
<include>**/*.properties</include> <include>**/*.xml</include>
来使其包含.properties和.xml文件,<filtering>false</filtering>
false,不去过滤这些文件。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
5.13、IDEA操作
![image-20200907185318253](https://img-blog.csdnimg.cn/img_convert/414fa61fc4ae5a8edb60cad9a971a19c.png)
5.14、解决遇到的问题
1,Maven 3.6.2 无法导入包
原因:JDK的问题,JDK12建议换成JDK8,建议将 Maven3.6.2改为3.6.1的版本
Unable to import maven project See logs for details
IDEA日志文件:C:\Users\QMei\AppData\Local\JetBrains\IntelliJIdea2020.2\log\idea.log
![image-20200907190254947](https://img-blog.csdnimg.cn/img_convert/00a8c1806c63b045ffd0235ba627b69e.png)
2,Tomcat闪退
Tomcat的bin目录下的【startup.bat】set设置了【catalina.bat】,而它引用了JAVA_HOME和JRE_HOME,
可以在【catalina.bat】最后写入【pause】暂停看错误提示。
3,IDEA中每次都要重复配置Maven
IDEA存在项目配置和全局配置,
全局配置入口,关闭项目进入:
![image-20200907191559360](https://img-blog.csdnimg.cn/img_convert/caef7f6b23674511ca6b61119605f495.png)
![image-20200907191752692](https://img-blog.csdnimg.cn/img_convert/3fa773b1eb548507f09d14993fb3af69.png)
![image-20200907191852043](https://img-blog.csdnimg.cn/img_convert/20fb0cd841fecae62a756a9265637b7e.png)
4,Maven项目中Tomcat无法配置
5,IDEA默认web.xml版本问题
Maven默认web项目中的web.xml版本问题,IDEA采用了webapp2.3,可能出现问题
![image-20200907193853639](https://img-blog.csdnimg.cn/img_convert/1f5f1f0de6c5925b0250feece75dcf12.png)
采用Tomcat中的webapps目录下的原始ROOT目录下的WEB-INF下的web.xml配置文件作为参考
webapp采用了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>
接着新建两个文件夹目录
![image-20200907194847314](https://img-blog.csdnimg.cn/img_convert/b37e2f393b2267ab2455b21382751b24.png)
6、写一个Servlet
写一个Servlet,不会的话查看官方文档:
本地网址:http://localhost:8080/examples/(当然首先需要启动Tomcat哦!)
![image-20200907195517178](https://img-blog.csdnimg.cn/img_convert/aed1cc449cb7ac9d4de01419c44b70f7.png)
以前的Eclipse中学习javaweb没有采用Maven,需要手动导入上图的jar包,例如import jave.servlet.http.*;
现在有了Maven对jar进行自动导入和管理,在IDEA中只需要按快捷键**【Alt+Enter】**
![image-20200907195952202](https://img-blog.csdnimg.cn/img_convert/99298983be4dca6e635adfbd350a158b.png)
自动导入不成功,需要添加依赖的代码:
![image-20200907200149407](https://img-blog.csdnimg.cn/img_convert/5a713746956aae8e6228c3e798ecbd80.png)
在Maven仓库中查找HttpServlet依赖的包:
![image-20200907200737961](https://img-blog.csdnimg.cn/img_convert/dc77ee9343c7697ba4e8a422409ed4de.png)
![image-20200907201005521](https://img-blog.csdnimg.cn/img_convert/4ef28638d5f6c9b78dc14c409671d279.png)
![image-20200907201111658](https://img-blog.csdnimg.cn/img_convert/97985869b81583b448acc9b9da0e07fe.png)
在Tomcat中查找Servlet依赖的包名
![image-20200907201242089](https://img-blog.csdnimg.cn/img_convert/5389257500aee7b31b5fda87873fc17d.png)
回到Maven仓库,搜索【servlet-api】
![image-20200907201550019](https://img-blog.csdnimg.cn/img_convert/ae1dee1f3d9b7f26d086e150e06d059b.png)
选择使用的版本
![image-20200907201855933](https://img-blog.csdnimg.cn/img_convert/b7c3054b6915affe9a87bc84dad262d8.png)
![image-20200907202111166](https://img-blog.csdnimg.cn/img_convert/21d094c5f36f4356f82e6e1493365656.png)
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
去掉其中的作用域,因为所以地方都可以用的话是最好的
<!--作用域-->
<scope>provided</scope>
![image-20200907203001184](https://img-blog.csdnimg.cn/img_convert/1d5f1a5d00dcb91d4720258926be0da2.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)