赞
踩
博主将用 CSDN 记录 Java 后端开发学习之路上的经验,并将自己整理的编程经验和知识分享出来,希望能帮助到有需要的小伙伴。
博主也希望和一直在坚持努力学习的小伙伴们共勉!唯有努力钻研,多思考勤动手,方能在编程道路上行至所向。
由于博主技术知识有限,博文中难免会有出错的地方,还望各位大佬包涵并批评指正,博主会及时改正;如果本文对小伙伴你有帮助的话,求求给博主一个赞支持一下,可以一起交流,一起加油!!
本文是博主在学习B站尚硅谷、黑马程序员等机构的JavaWeb网课时整理的学习笔记,在这里感谢各个机构的优质网课,如果有兴趣的小伙伴也可以去看看。
Web服务器是一个应用程序,也就是我们常说的软件(Tomcat
就是一款Web服务器软件),它的作用是对HTTP协议的操作进行封装,使得程序员不必直接对HTTP协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。浏览器同Web服务器进行交互的图示如下:
Web服务器是安装在服务器端的一款软件,将来我们会把自己写的Web项目部署到Web 服务器软件中,当Web服务器软件启动后,我们部署在Web服务器软件中的项目资源就可以直接通过浏览器来访问了。
Web服务器软件使用步骤如下:
Tomcat
其实就是一款Web服务器软件,我们主要是以学习如何去使用为主。具体我们会从以下这些方向去学习:
Tomcat
Tomcat
的基本操作 Web
项目Tomcat
Web
项目首先我们来初步认识下Tomcat
。
Client
(浏览器)向 Server
(服务器)请求(访问)一个资源时,这个资源其实是放在Tomcat
里面的。
Tomcat
既是一个 Web Container
(一个免费、小巧、性能稳定的 Web 容器),同时它也是一个 Web服务器。我们可以在容器里安装很多个项目。我们把一个项目放到 Tomcat
容器的过程就叫做 deploy
(部署),每个项目都是一个唯一的context root
(根目录)。
举例,假如我们想要在Tomcat
中部署一个项目,起名为 baidu
,那么容器里面的这个baidu
项目其实就是一个context root
,不同的 Web项目的 context root
是不一样的)。
Tomcat
的相关概念:
Tomcat
是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP
少量JavaEE
规范。- 概念中提到了
JavaEE
规范,那什么又是JavaEE
规范呢?JavaEE:
Java Enterprise Edition
,Java企业版。指 Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF。
- 因为
Tomcat
支持Servlet/JSP
规范,所以Tomcat
也被称为==Web容器==、Servlet容器。这代表着Servlet
需要依赖Tomcat
才能运行。
Tomcat
的官网: https://tomcat.apache.org/ 。从官网上可以下载对应的版本进行使用。
Tomcat的 LOGO如下:
通过这一节的学习,我们需要掌握以下内容:
1. Web服务器的作用
封装HTTP协议操作,简化开发。
可以将 Web项目部署到Web服务器中,对外提供网上浏览服务。
2. Tomcat是一个轻量级的Web服务器,支持 Servlet/JSP 少量 JavaEE规范,也称为Web容器,Servlet容器。
Tomcat 总共分两部分学习,第一部分先来学习Tomcat
的基本使用,包括Tomcat
的下载、安装、卸载、启动、关闭、配置以及简单部署。第二部分学习在 IDEA 中如何创建 Web项目和使用 Tomcat,以及如何使用 Maven 工具创建一个 Web项目。
直接从Tomcat官网下载:
大家去官网自行下载所需的版本即可。
Tomcat 是绿色软件,下载好其安装压缩包后直接解压即可。
在你下载好的Tomcat压缩包的目录下,将apache-tomcat-xxxx-windows-x64.zip
进行解压缩,会得到一个apache-tomcat-xxxx
的目录,这就表示Tomcat已经安装成功了。
注意,Tomcat 在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败。
打开apache-tomcat-xxxx
目录就能看到如下目录结构,每个目录中包含的内容需要认识下。
bin
目录:目录下有两类文件,一种是以.bat
结尾的,是Windows系统的可执行文件,一种是以.sh
结尾的,是Linux系统的可执行文件。
webapps
目录:就是以后Web项目部署的目录
到此,Tomcat的安装就已经完成。
卸载比较简单,可以直接删除解压后的Tomcat目录即可。
双击Tomcat目录下的 bin\startup.bat
文件,即可成功启动。如下图:
启动后,打开电脑的浏览器,通过浏览器访问网址http://localhost:8080
,如果能看到如下图的Apache Tomcat的内容就说明 Tomcat已经成功启动了。如下图:
注意: 启动的过程中,控制台如果有中文乱码,则需要修改 Tomcat目录下的conf/logging.prooperties
文件。修改内容如下:
关闭有三种方式:
bin\shutdown.bat
文件:正常关闭。Ctrl+C
: 正常关闭。修改端口
conf/server.xml
文件。如下图:注: HTTP协议默认端口号为80,如果将Tomcat端口号改为 80,则将来访问Tomcat时,将不用输入端口号。(不建议这样做)
启动时可能出现的错误
0-65535
之间任意一个未被电脑中其他应用程序占用的端口,如果设置的端口号被占用,启动的时候就会出现如下的错误:JAVA_HOME
**环境变量是否正确配置。如下图:这里我们只是简单的介绍一下,以后我们不会使用这种传统的方式来布置Web项目,而是会使用功能强大的IDEA 开发工具来部署我们的Web项目。
Tomcat 中部署Web项目:只需将 Web项目放置到Tomcat目录下的webapps
目录下,即可以部署完成。
假如我们想要将一个Web项目部署到Tomcat中,直接通过浏览器便可以访问到该项目。步骤如下:
webapps
目录下。如下图,此处hello
文件夹便是一个简单的Web项目,只包含了一个 html页面资源a.html
,大家可以自定义:http://localhost:8080/hello/a.html
,能看到a.html
页面中的内容就说明Web项目已经在 Tomcat中部署成功。但是,随着项目的增大,项目中的资源也会越来越多,而项目在拷贝的过程中也会越来越费时间,该如何解决呢?
答案是:一般JavaWeb
项目都会被打包成**war
包,我们只要将项目打包成的war
**包放到 Tomcat目录的Webapps
目录下,Tomcat 就会自动解压该war
文件了。
haha
打包成的 war
包 haha.war
,然后拷贝到 Tomcat目录的webapps
目录下war
包后会自动完成解压缩,于是在webapps
目录下就会多一个haha
目录,这就是haha
项目了。http://localhost:8080/haha/a.html
,能看到下面的内容就说明项目已经部署成功。至此,Tomcat 的部署就已经完成了,至于我们如何获得 Web项目对应的 war
包,以后我们会借助于 IDEA工具来生成。
1. 在 IDEA 中新建一个普通 Module,命名为javaweb-demo
2. 右击javaweb-demo
选择Add Framework Support
,勾选Web Application
,然后点击OK
。
javaweb-demo
模块下出现以下目录结构(其中index.jsp
文件可以删除):3. 接着在 web
目录下添加一个html
文件hello01.html
(注意该文件和WEB-INF
文件夹是在同一层目录下)。如下:
此时我们便在 IDEA 中成功创建了一个简单的 Web 项目,那我们如何通过浏览器来访问到这个 Web项目呢?当然是先要将该项目部署到我们的 Web容器 Tomcat,然后便能在浏览器中进行访问了。
接下来介绍如何在 IDEA中使用 Tomcat 部署 Web项目。
1. 进入Edit Configuations
2. 点击左上角的+
,找到Tomcat Server
,选择Local
,就可以配置一个 Tomcat 模板。模板如下:
confugure
,然后选择你之前安装好的 Tomcat即可,命名可以随意。3. 接着新建一个 Tomcat Server
容器,在Tomcat 8.0.42
中,进入Deployment
选项卡便可以部署 Web 项目。点击Artifact
就可以选择想要部署的 web项目。如下图:
4. 选择如下图所示的 Web项目,就是我们刚才创建javaweb-demo
。选择好后可以在最下面编辑该项目的应用目录Application context
,其默认值为该项目的项目名
URL
也自动改变了,Application context
中的值进行修改,此处修改为/
,Application context
就是上面我们在介绍 Tomcat是什么的时候所说的Web项目的根目录context root
。此处设置的值,会影响浏览器访问该项目的URL
的值。如果此处为/
,则初始的 URL
前缀就为http://localhost:8080/
。假如此处为javaweb-demo
,则 URL
的前缀就为http://localhost:8080/javaweb-demo/
。5. 最后点击 Apply
,OK
。这样我们就成功地在 Tomcat 容器中部署好了一个 Web 项目。
点击debug
Tomcat,结果如下:
会自动打开浏览器界面如下:
注:自动打开的浏览器中的 URL 中为http://localhost:8080/
,但一样能显示我们的hello01.html
页面资源。这是因为刚刚我们在Web项目中只创建了该页面资源,而浏览器默认访问的就是第一个资源。但如果我们在 Web项目中创建了多个资源,则必须使用http://localhost:8080/
作为前缀,再加上想要访问的资源的路径,作为一个整体 URL,才能对资源进行访问。
还需注意,http://localhost:8080/
作为前缀是因为我们在部署 Tomcat 时,Application context
中设置的值为/
,若改为javaweb-demo/
,则 URL 的前缀就变为http://localhost:8080/javaweb-demo/
了。自己动手试一试
一个 Web 项目,需要部署到 Tomcat 容器中去,并不是把 Web 项目的源代码部署进去,而是把 Web 项目的部署包artifact
部署到 Tomcat中去。所以我们需要先生成 Web项目的 部署包,在IDEA 2022中,创建 Web 项目时,就会自动生成其对应的部署包了。不过在旧版的 IDEA 中,则需要在 Project Structure
中手动生成 Web项目的 部署包。
若是在生成了项目的部署包之后,又另外在 Web 项目中引入了新的第三方的 jar 包,这个jar 包在部署包中是不会自动更新的。则在Project Structure
中会出现 Problems
提示,我们根据其提示操作就可以解决该问题。另外,我们也可以直接把第三方 jar 包直接放到 Web 项目中的 WEB-INF
目录下,这样该 jar 包会自动添加进部署包中,不过这样做的缺点是该 jar 包只能给该项目独享,其他的项目不能使用此 jar包。
最后就是要在 Tomcat 中部署 Web 项目的部署包了。首先进入 Tomcat 模板中的 Deployment
模块,添加需要部署的 Web项目的 Artifact
部署包,然后会出现一个项目根目录Application context
,其内设置的目录路径就是 Web 项目在 Tomcat 容器中的根目录路径context root
,我们可以对其进行更改。 当Tomcat 启动后,会自动打开指定的浏览器,然后去访问该URL
。
学习完在 IDEA中如何创建一个简单 Web项目后,我们再来学习如何在 IDEA 中使用 Maven 工具来构建一个 Web项目。这是因为以后 Tomcat 中运行的绝大多数项目都是Web项目,而使用 Maven工具能够更加简单快捷的把Web项目给创建出来。
在真正创建Web项目之前,我们先来看看Maven工具构建的 Web项目长什么样子,具体的结构有什么?
使用 Maven工具所构建的 Web项目的结构又分为:开发中的Web项目和开发完可以部署的Web项目,这两种项目的结构是不一样的,我们分别来介绍下:
package
,便可以获取到可以部署的Web项目目录。Java
字节码文件和resources
的资源文件,会被放到WEB-INF
目录下的classes
目录下。pom.xml
文件中依赖坐标对应的 jar包,会被放入WEB-INF
目录下的lib
目录下。介绍完 Maven 工具构建的Web项目结构后,接下来介绍如何使用Maven工具来构建一个 Web项目,创建方式有两种:使用骨架和不使用骨架
具体的步骤包含:
创建Maven项目
选择使用 Web项目骨架
输入Maven项目坐标创建项目
确认Maven相关的配置信息后,完成项目创建
删除
pom.xml
文件中多余内容补齐Maven Web项目缺失的目录结构
1. 创建一个新Module
2. 选择使用Web项目骨架。注意,不同IDEA版本创建的流程不同,但只要选择Maven Archetype
中的maven-archetype-webapp
即可。
3. 输入你创建的Maven Web项目的坐标信息创建项目
4. 确认Maven相关的配置信息后,点击Finish
完成项目创建
5. 删除pom.xml
文件中多余内容,只留下面的这些内容,注意打包方式jar
和war
的区别。
6. 补齐Maven Web项目缺失的目录结构,默认没有java
和resources
目录,需要手动完成创建补齐,最终的项目目录结构如下:
具体的步骤包含:
1.创建Maven项目
2.选择不使用Web项目骨架
3.输入Maven项目坐标创建项目
4.在
pom.xml
文件设置打包方式为war
5.补齐Maven Web项目缺失
webapp
的目录结构6.补齐Maven Web项目缺失
WEB-INF/web.xml
的目录结构
1. 创建Maven项目
2. 选择不使用Web项目骨架
3. 输入Maven项目坐标创建项目
4. 在pom.xml
文件中设置打包方式为war
(注:若不设置打包方式,代表默认打包方式为jar
)
5. 补齐 Maven Web项目缺失webapp
的目录结构。打开Project Settings
webapp
目录的路径为:...\src\main\webapp
。6. 补齐 Maven Web项目缺失WEB-INF/web.xml
的目录结构
WEB-INF/web.xml
的路径为:...\src\main\webapp\WEB-INF\web.xml
。7. 补充完后,最终的项目结构如下:
上述的两种方式创建的Web项目,项目结构都不是很全,需要手动补充内容,至于最终采用哪种方式来创建Maven Web项目,都是可以的,根据各自的喜好来选择使用即可。
1. 安装插件JBLJavaToWeb
file / settings / plugins / marketplace
2. 不使用骨架创建一个 构建一个web项目,但此时无需修改 pom.xml
文件及后续步骤
3. 直接在项目点击右键,选择使用插件JBLJavaToWeb
便可快速构建 Web项目。
1. 掌握Maven Web项目的目录结构
2. 掌握使用骨架的方式创建Maven Web项目
3. 掌握不使用骨架的方式创建Maven Web项目
4. 掌握使用插件JBLJavaToWeb
的方式创建 Maven Web项目
使用Maven 工具成功构建一个 Web项目后,利用 Maven工具的package
命令便可以将 Web项目打包成war
包。将war
包文件拷贝到 Tomcat的webapps
目录下,然后启动 Tomcat就可以将Web项目部署成功,最后通过浏览器进行访问即可。
然而我们在开发的过程中,已经部署好Web项目中的内容可能还会进行修改,如果按照上面这种方式来将Web项目部署到Tomcat中,然后才能对项目进行测试,是非常不方便的。
那我们如何在 IDEA中快速地使用 Tomcat 部署呢?
在 IDEA中集成使用 Tomcat有两种方式,分别是集成本地 Tomcat和使用Tomcat Maven插件。
目标: 将刚才本地安装好的 Tomcat 软件集成到 IDEA中,完成Maven Web项目的部署,上面我们新构建了一个 Web项目maven-javaweb-demo
,具体的实现步骤如下:
第一步:打开添加本地 Tomcat的面板,IDEA 右上角点击Edit Configuations
进入。
第二步:点击左上角的+
,找到Tomcat Server
,选择Local
,点击OK
,就可以配置一个 新的Tomcat 模板。模板如下:
第三步:在模板中指定本地Tomcat安装的具体路径(有时候IDEA会自动识别,无需我们手动添加)。
第四步:修改Tomcat的名称,此步骤可以不做,只是名字让Tomcat看起来更有意义。HTTP port
中的端口号也可以进行修改。
注意这个页面中有一个很重要的配置:URL
,该处的值表示Tomcat服务器的访问路径。此时默认为:http://localhost:8080/
。当我们部署好Web项目后,URL
将会发生变化。
而有了Tomcat模板后,我们就可以将Web项目部署项目到Tomcat中了。
第五步:进入Deployment
页面部署Web项目。点击Artifact
就可以选择想要部署的 Web项目的war
包,选择Web项目对应的war
包进行部署。
扩展内容:
xxx.war
和xxx.war exploded
这两种部署项目模式的区别?
war
模式是将Web工程打成war
包,把war
包发布到Tomcat服务器上。war exploded
模式是将Web工程以当前文件夹的位置关系发布到Tomcat服务器上war
模式部署成功后,Tomcat的webapps
目录下会有部署的项目内容。war exploded
模式部署成功后,Tomcat的webapps
目录下没有,而使用的是项目的target
目录下的内容进行部署。建议大家都选
war
模式进行部署,更符合项目部署的实际情况。
完成上面的步骤后,我们便将Web项目部署成功了,接下来我们看看Tomcat的访问路径 URL
有没有发生变化。回到Server
页面,可以看到原先的 URL
自动发生改变。
那为什么URL
的路径会多出一级呢?变成了 http://localhost:8080/maven_javaweb_demo/
。
我们又回到Deployment
页面,此时会发现,在该页面的下方出现了一个新的属性 Application context
,其内的值是 /maven_javaweb_demo
。
上面我们讲过,在部署一个普通的Web项目时,Deployment
页面最下方会自动出现一个Application context
属性,其默认值为该Web项目的项目名。而Application context
属性值的设置,会影响该Web项目的访问路径URL
。
Web项目部署成功后,就可以启动 Tomcat了,为了能更好的看到启动的效果,可以在webapp
目录下添加一个hello.html
页面。然后右上角点击Debug
启动Tomcat。
Tomcat 启动成功后,我们可以通过浏览器访问Web项目的资源hello.html
页面进行测试。
hello.html
页面,所以我们的访问路径需要在Web项目的URL
后再加上资源路径。即:http://localhost:8080/maven_javaweb_demo/hello.html
至此,IDEA 中集成本地 Tomcat并使用 Maven 工具进行 Web项目部署的内容我们就介绍完了,大家需要按照上面的流程进行部署操作练习。
在IDEA中使用本地 Tomcat进行项目部署,相对来说步骤比较繁琐,所以我们需要一种更简便的方式来替换它,那就是直接使用 Maven工具中的 Tomcat插件来部署项目,具体的实现步骤,只需要两步,分别是:
1. 在pom.xml
文件中添加Tomcat插件。
<build>
<plugins>
<!--Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
2. 使用Maven Helper
插件快速启动项目,选中项目,右键--> Run Maven --> tomcat7:run
。
注意:此时Tomcat已经成功启动了,不过需要注意的是,此时Web项目的访问路径URL
不是我们在上面的本地 Tomcat中设置的URL
了,而是Web项目本身的名字。
URL
页面资源:http://localhost:8080/maven_javaweb_demo/hello.html
,浏览器不显示资源。http://localhost:8080/maven-javaweb-demo/hello.html
,浏览器成功访问资源。补充:
如果选中项目并右键点击后,看不到
Run Maven
和Debug Maven
,这个时候就需要在IDEA中下载Maven Helper
插件,具体的操作方式为:File --> Settings --> Plugins --> Maven Helper ---> Install
,安装完后按照提示重启 IDEA,就可以看到了。
Maven Tomcat
插件目前只有Tomcat7
版本,没有更高的版本可以使用。Maven Tomcat
插件,要想修改Tomcat
的端口和访问路径,可以直接修改pom.xml
文件。<build> <plugins> <!--Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>80</port><!--修改访问端口号 --> <!--修改项目访问路径 未修改配置访问路径,默认为: http://localhost:8080/maven-javaweb-demo/hello.html 修改配置后访问路径: http://localhost:80/java_web/hello.html --> <path>/java_web</path> </configuration> </plugin> </plugins> </build>
通过这一节的学习,大家要掌握在 IDEA中创建 Web项目的三种方式;以及掌握使用 Tomcat 部署 Web项目的两种方式,包括集成本地 Tomcat 和使用 Maven工具的 Tomcat 插件,后者更简单,推荐大家使用。
下一篇博文我们要介绍 JavaWeb 的重点内容:Servlet
,不过可能需要一些时间啦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。