Java学习之JavaWeb篇[通俗易懂]

Java学习之JavaWeb篇[通俗易懂]讲解了什么是Javaweb,以及如何去搭建一个网站

大家好,又见面了,我是你们的朋友全栈君。

图床路径

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

  • 静态web的缺点:

    • web页面无法动态更新,所有用户看到的都是同一个页面

      • 轮播图,点击特效:伪动态
      • JavaScript (实际开发中,用的最多)
      • VBScript
    • 它无法和数据库交互(数据无法持久化,无法交互)

1.4、动态web

页面会动态展示:“web页面展示的效果因人而异“;

network

缺点:

  • 服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布;
    • 停机维护

优点:

  • web页面可以动态更新,所有用户看到的都不是同一个页面
  • 它可以和数据库交互(数据持久化:注册,个人信息)
  • 架构师更牛逼

新手村:–魔鬼训练(分析原理,看源码)–>PK场

2、Web服务器

2.1、技术讲解

ASP,

  • 微软:国内最早流行的就是ASP;
  • 在HTML中嵌入了VB的脚本,ASP+COM;
  • 在ASP开发中,基本一个页面都有几千行的业务代码,页面极其混乱。
  • 维护成本高!
  • C#
  • IIS服务器

image-20200907064208773

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:

  1. 安装或者解压
  2. 了解配置文件及目录结构
  3. 这个东西的作用

目录结构:(反射和多线程所学)

jdk和jre的区别:一个.java,一个.class

image-20200907070457224

3、Tomcat

3.1、安装Tomcat

Tomcat官网:http://tomcat.apache.org/

采用了Tomcat 9 的版本

image-20200907071326917

image-20200907071541196

3.2、Tomcat启动和配置

文件夹目录

image-20200907072238162

启动和关闭Tomcat

image-20200907072402890

Tomcat界面

image-20200907072513237

启动测试:http://localhost:8080/

image-20200907072634189

启动测试:http://localhost:8080/

可能遇到的问题:

  1. Java环境变量没有配置(可能会闪退)
  2. 闪退问题:需要配置兼容性
  3. 乱码问题:配置文件中设置

一个文件夹代表一个web应用

jsp就是在HTML里面嵌入一些java代码

乱码问题:

image-20200907073231274

服务器核心配置文件

image-20200907073415028

3.2.1、修改访问页面

修改D:\Java\apache-tomcat-9.0.37\webapps\ROOT下的index.jsp,修改之后刷新即可,不需要重启服务器的呀?

image-20200907074201134

image-20200907074349326

3.2.2、修改访问端口号

修改D:\Java\apache-tomcat-9.0.37\conf下的server.xml,更改了服务器的配置文件,必须重启服务器,否则无法生效。

image-20200907075010599

image-20200907075153323

3.2.3、修改域名

修改D:\Java\apache-tomcat-9.0.37\conf下的server.xml,更改了服务器的配置文件,必须重启服务器,否则无法生效。

不要修改引擎里面的哦,修改<Host>标签中的,修改之后还可以访问到吗?

image-20200907075537355

image-20200907075925435

修改C:\Windows\System32\drivers\etc下的hosts文件,更改了服务器的配置文件,必须重启服务器,否则无法生效。

Windows底层文件被修改,提示权限不够,采用管理员模式启动。

hosts中英文翻译

微软公司版权所有

这是Microsoft TCP/IP用于Windows的一个样例主机文件。

这个文件包含IP地址到主机名的映射。每一项都应单独列在一行上。IP地址应该放在第一列,后面跟着相应的主机名。

IP地址和主机名之间至少要有一个空格。

#此外,注释(比如这样的注释)可以插入到单独的行中,或者插入到由’#’符号表示的机器名称之后。

本地主机名解析在DNS本身中处理。

image-20200907080937575

image-20200907081418202

3.2.4、修改应用存放目录

image-20200907082529892

image-20200907084528269

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">

?思:

高难度面试题:

四面:请你谈谈网站是如何进行访问的!

  1. 输入一个域名;回车

  2. 检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名的映射

    • 有,直接返回对应的IP地址
    127.0.0.1		baba
    
    • 没有,去DNS服务器找,找到的就返回IP地址,找不到就返回错误信息。

4、可以配置一下环境变量(可选性)

3.3、发布一个网站

不会就模仿

image-20200907083823559

Diagram

自学素材:

image-20200907084841943

3.5、网站结构(也是约定)

  1. 将自己写的网站,放到服务器(Tomcat)中指定的web应用程序的文件夹下,就可以访问了
  2. 网站应有的结构:
--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 安全的)

  • 443

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					//get方法,post方法
Status Code: 200 OK					//状态码:200
Remote Address: 14.215.177.38:443	//远端服务器地址
  • 百度:Request Headers
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: //支持哪种编码格式:GBK,UTF-8,GB2312,ISO8859-1
Accept-Language: //告诉服务器它的语言环境
Cache-Control: //缓存控制
Connection: //告诉服务器,请求完成是断开还是保持连接
HOST: //主机
...

4.4、Http响应

  • 服务器–响应–客户端
  • 百度:General
Request URL: https://www.baidu.com/  //请求地址
Request Method: GET					//get方法,post方法
Status Code: 200 OK					//状态码:200
Remote Address: 14.215.177.38:443	//远端服务器地址

1.响应体

  • 百度:Response Headers
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: //告诉服务器,请求完成是断开还是保持连接
HOST: //主机
Refresh://告诉客户端多久刷新一次
Location//让网页重新定位;
...

2,响应状态码

200:请求响应成功 200

3xx:请求重定向

  • 重定向:你重新到我给你的新位置去找

4xx:找不到资源 404

  • 资源不存在

5xx:服务器代码错误 500 502:网关错误

常见面试题:

二面:当你的浏览器中地址栏输入地址并回车的一瞬间到页面=能够展示回来,经历了什么?

500字左右作文

image-20200907102424751

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

最新的并不一定是最好的

三部曲:

  1. 安装或者解压
  2. 了解配置文件及目录结构
  3. 这个东西的作用

文件目录结构

image-20200907110321107

5.3、配置环境变量

配置如下:系统环境变量,不是用户变量

  • MAVEN_HOME maven的目录(类似JAVA_HOME)
  • M2_HOME maven目录下的bin目录(以后用到,比如spring,springboot)

image-20200907110833983

image-20200907111123968

类似 JDK,检测是否安装成功,打开cmd,输入:

mvn -version 注意:mvn来源于bin目录下的mvn

image-20200907111531109

image-20200907111607151

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

5.6、在IEDA中使用Maven

1.启动IEDA

2.创建一个Maven Web项目

image-20200907113520751

image-20200907113930316

image-20200907114346770

3,等待项目初始化完成

  • 自动导入包
  • 当在【Messages】中看见了**[INFO] BUILD SUCCESS** ,表示初始化完成。
  • 项目构建成功
  • 本地仓库肯定有东西了

image-20200907115414350

5.7、IDEA中的Maven设置

IDEA项目创建成功之后,看一眼Maven的配置。

image-20200907120202724

image-20200907120543059

5.8、创建一个普通的Maven项目

不再勾选【Create from archetype】

就只有GAV和项目存放地址的配置了,没有了MUL三大路径配置了,响应了上文的IEDA默认配置Maven的问题。

image-20200907120202724

image-20200907122045710

这个是只有在web应用中才会有的目录【webapp】,其中的【java】和【resources】是自己后来加上的,然后【Mark Directory as】的

image-20200907122324805

5.9、标记文件夹功能

image-20200907123636733

image-20200907124034072

5.10、Maven的目录结构(约定)

目录结构

--项目名
	--src
		--main
			--java
			--resources
			--webapp
				--WEB-INF
					--web.xml
				--网页
		--test
			--java

5.11、在IDEA中配置Tomcat

点击配置按钮

image-20200907124356055

选择Tomcat服务器

image-20200907124812191

配置Tomcat服务器,纠正,不是web.xml,而是【server.xml】

image-20200907125829259

5.11.1、指定网站访问的文件夹

必须要的配置:为什么有这个问题:我们访问一个网站,需要指定一个文件夹,访问指定的目录文件资源。

解决警告问题

image-20200907130113992

虚拟路径映射

image-20200907130944491

点击右上角的三角符号,等待Tomcat的启动,在【services】中看见了【Connected to server】表示连接成功!

image-20200907131353948

在Tomcat的文件目录中多了一个文件夹,就是刚刚设置的访问路径

image-20200907132311062

5.12、pom文件

Maven的核心文件

image-20200907132927013

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

直接复制配置代码来使用

image-20200907182452633

会自动下载jar包

Maven的高级之处在于,会自动导入jar包,而且会自动导入这个jar包所依赖的其他jar包

image-20200907183035709

正常Maven,不用IDEA也可以新建成功

?模板里嵌入了一些东西,我们无法修改,所以不推荐用java,即这个Maven,去创建一个web项目,我们都是手动创建一个web项目。

依赖的问题

image-20200907135026710

修改字体风格

image-20200907134504785

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,来防止我们的资源导出失败的问题-->
<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!-- 后续的学习中,发现,这里的excludes有误,不包含的意思 -->
                <!-- 应该使用include 包含 -->
                <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

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

2,Tomcat闪退

Tomcat的bin目录下的【startup.bat】set设置了【catalina.bat】,而它引用了JAVA_HOME和JRE_HOME,

可以在【catalina.bat】最后写入【pause】暂停看错误提示。

3,IDEA中每次都要重复配置Maven

IDEA存在项目配置和全局配置,

全局配置入口,关闭项目进入:

image-20200907191559360

image-20200907191752692

image-20200907191852043

4,Maven项目中Tomcat无法配置

5,IDEA默认web.xml版本问题

Maven默认web项目中的web.xml版本问题,IDEA采用了webapp2.3,可能出现问题

image-20200907193853639

采用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

6、写一个Servlet

写一个Servlet,不会的话查看官方文档:

本地网址:http://localhost:8080/examples/(当然首先需要启动Tomcat哦!)

image-20200907195517178

以前的Eclipse中学习javaweb没有采用Maven,需要手动导入上图的jar包,例如import jave.servlet.http.*;

现在有了Maven对jar进行自动导入和管理,在IDEA中只需要按快捷键**【Alt+Enter】**

image-20200907195952202

自动导入不成功,需要添加依赖的代码:

image-20200907200149407

在Maven仓库中查找HttpServlet依赖的包:

image-20200907200737961

image-20200907201005521

image-20200907201111658

在Tomcat中查找Servlet依赖的包名

image-20200907201242089

回到Maven仓库,搜索【servlet-api】

image-20200907201550019

选择使用的版本

image-20200907201855933

image-20200907202111166

<!-- 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156268.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java长轮询「建议收藏」

    java长轮询「建议收藏」在服务端向页面主动推送消息的业务场景下,有长轮训和websocket两种思路。springboot和websocket使用:https://blog.csdn.net/u014203449/article/details/102902078现在看看长轮询:设想一个业务场景:A用户打开页面,要求实时刷新数据,B用户操作新增数据,A页面刷新。1.页面长轮询的做法是,A用户打…

    2022年10月14日
  • 如何从从官网下载各个版本的jquery「建议收藏」

    如何从从官网下载各个版本的jquery「建议收藏」许多前端的小伙伴们可能跟我一样有选择强迫症,对于一些工具、软件等都偏爱从官网下载,尽管许多非官方网站上已经有现成的,但还是从心理上感觉官网的更正规。如今的jquery版本已经是相当多了。在jquery官网的首页上只提供了为数不多的较为流行的版本供我们下载。但是出于各种情况的考虑,我们想要自己需要的某一版本该如何从官网获取呢?步骤也是相当简单,jquery官网虽然为了页面的简洁性并未在Downl…

  • airplay影像_播放ftp服务器的视频

    airplay影像_播放ftp服务器的视频http://bbs.weiphone.com/read-htm-tid-1785042.htmliOS客户端软件:AirPlayer[支持RMVB,MKV,MP4,AVI等等格式],另外有个PulgPlayer不支持RMVBMKV等等格式。PC端媒体服务器:WIN7自带的媒体中心(论坛有设置方法的教程,这不介绍了)…

  • 总结Redis一些使用

    总结Redis一些使用

  • ubuntu clion goland 2022.01.4激活码[最新免费获取]2022.01.25

    (ubuntu clion goland 2022.01.4激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • Elasticsearch 简介[通俗易懂]

    Elasticsearch 简介[通俗易懂]Elasticsearch是一个非常强大的搜索引擎。它目前被广泛地使用于各个IT公司。Elasticsearch是由Elastic公司创建并开源维护的。它的开源代码位于https://github.com/elastic/elasticsearch。同时,Elastic公司也拥有Logstash及Kibana开源项目。这个三个开源项目组合在一起,就形成了ELK软件栈。他们三个共同形成了一个强大的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号