IDEA中使用Tomcat

前言

        前文中已经学会如何在Tomcat来搭建一个入门的案例,这篇文章主要是对Tomcat的部署、参数等做一些总结。


一、IDEA中普通项目与web项目

1.1普通Module模块和web module的文件结构对比、说明。

        一般来说,普通Java项目常用于写一些工具,比如写一个读取文件,将文件中的字符提取成world文档的小工具。而web项目通常是构建web应用,比如搭建一个电商项目。

web module文件结构说明
文件/文件夹描述
src用于存放Java代码的文件夹。模块的一级子目录,其子文件夹一般会以公司域名:com.xxxx.yyy这样的方式来命名
projectName.imlmodule的文件的“身份证”,里面有当前module的描述信息,IDEA通过该文件来识别、区分每一个module
web模块的一级子目录,web项目中存放前段相关资源(如html、CSS、js、front等)的文件夹。
web.xmlweb项目中用于描述该web项目信息的文件,如版本号等
index.jsp模块的一级子目录,web项目中默认生成的,当项目初始化,没有添加任何资源、Servlet时,作为访问该web项目的默认页面
lib在下图中未展示,一般用于存放导入的第三方的依赖包,需要手动创建
普通Java项目和web项目的文件结构比较

        以实际的项目为例子:在下图中,hellTomcat现在为普通的Java项目,helloWord是web项目,他们的目录结构如下图所示:

普通Java项目和web项目比较

        除了文件结构不相同以外,普通的Java项目在dependencies(查看module的dependencies:File->Project Settings->Dependencies)上没有web服务器(Tomcat),而已经部署过的hellWord项目有Tomcat依赖:

web项目有服务器依赖

         在进行web项目打包时,无法将普通的Java项目通过Web Application:Exploded方式打出来。而web项目可以。

目前只有helloWord是web项目,而hellTomcat是普通的Java项目

  1.2 新建的普通Java module转成web项目

        IDEA中普通的模块需加上Add Framework Support,选中Web Application以后,IDEA才会将该module识别成一个web项目。此处,将以上文中的helloTomcat为例(其原本是一个普通的Java项目,将其转成web项目:选中helloTomcat项目右击出弹窗-->选择Add Frameworks Support-->勾选WebApplication-->Version默认为4.0-->点击OK):

将普通的Java项目转成webApplication

         添加了Web Application Framework Support之后的Tomcat从一个普通的Java项目变成了web应用,对应的项目结构也发生了如下该变,增加了一个web文件夹(在IDEA中该文件夹底色是灰色,中心有个蓝色的球心),在web下,有web.xml、index.jsp,其中web.xm是描述该项目的信息的配置文件,而index.jsp在被部署在Tomcat服务器上后作为项目项目的首页展示

添加Web Support后的helloTomcat的web.xml文件

         此时,点击Artifacts,可以看见和之前对比,现在IDEA已经将helloTomcat当做了一个WebApplication,可以对helloTomcat进行Web Application Exploded操作。

         因为index.jsp是项目启动默认的首页,所以修改index.jsp的内容,之后在启动访问helloTomcat可以在浏览器中看见"This is Hello Tomcat",同样也对helloWord的index.jsp进行一样的修改,如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Hello Word</title>
  </head>
  <body>
  <h1>This is Hello Word</h1>
  </body>
</html>
修改helloTomcat和helloWord的index.jsp,打印"This is xxx"

二、将多个Web Application同时部署在Tomcat中

1.先将未导入过Tomcat的项目添加到Tomcat服务器中

        虽然helloTomcat项目现在已经是一个Web Application,但是此时直接点击IDEA右上角的Tomcat->Edit Configurations得到的新弹窗中,只显示出之前部署过的项目helloWord:

helloTomcat未部署过服务器之前,只有helloWord这个已经部署过的应用

         点击Deployed-->加号“+”-->添加helloTomcat项目。然后可以编辑helloTomcat项目的Application context等信息。

编辑helloTomcat的部署信息

2.Tomcat部署参数说明

参数描述
Application context在IDEA的Deployment页面下,单机某一个Web的包进行设置,其作用是Tomcat分辨/标识同时部署的项目,也是浏览器访问某一个web应用的地址,如这里设置的helloTomcat项目的Application context为:/helloTomcat,则在Tomcat启动之后,在本机访问该应用的地址为:localhost:9099/helloTomcat
Before launch在IDEA的Deployment页面下,对整个Tomcat服务设置起作用,其含义是启动Tomcat之前要进行的操作,比如这里是对两个项目helloTomcat、helloWord进行Build
After launch在IDEA的Server页面下,对整个Tomcat服务设置起作用,其含义是启动Tomcat之后要进行的操作,比如这里是启动Google浏览器,并且访问URL:http://localhost:9099,这里的URL不是某一个项目的地址,所以访问时会报错404,这是正常的,可在将URL修改成helloTomcat或者helloWord的访问地址,就不会报错了
HTTP port 在IDEA的Server页面下,对整个Tomcat服务设置起作用,其含义是Tomcat启动之后的端口号,这里设置的端口号是9099,则Tomcat启动之后,所有的部署在该Tomcat上的web应用的访问端口都是9099
边界Tomcat部署信息

3.访问Tomcat部署的项目

        在上文中,部署了helloTomcat和helloWord两个项目,Application context地址分别是:/helloTomcat(驼峰)和/helloword(小写);Tomcat的端口是9099,所以helloTomcat和helloWord的访问地址分别是:http://localhost:9099/helloTomcathttp://localhost:9099/helloword

,下图为访问的截图:

部署的两个项目的访问效果

4.Tomcat及其集成在IDEA后的相关信息说明 

4.1在原生Tomcat上部署Web应用的三种方式

4.1.1将web打包后的文件夹全部拷贝到%TOMCAT_HOME%/webapps下

        这种方式中,可以直接使用编辑器IDEA、Eclipse等将项目打包,并将该项目打包后的文件夹放置到%TOMCAT_HOME%/webapps。这里打包后,该包可以是未经压缩的(这种情况下,上传的是一个文件夹,文件夹下有很多子文件夹和文件不利于远程上传),也可以是war格式的包(这种包是压缩过的,远程上传时只需要上传一个压缩包即可)。

直接将项目的包放在webapps下

4.1.2配置%TOMCAT_HOME%/conf/server.xml文件部署Web工程

        这种方式中,指明项目的contextPath打包后的项目地址。具体的配置如下:启动Tomcat后,访问该项目的地址为:http://localhost:9099/helloword,这种配置方式会直接修改server.xml内容,如果不小心修改到其它内容会导致Tomcat出错,另外,如果已经放弃的项目可能会导致忘记删除等,所以有第三种方式。

<Context path="contextPath" docBase="projectPaht" />
在Tomcat的/conf/server.xml中配置项目

 4.1.2在Tomcat的/conf/Catalina/localhost/路径下添加xml配置文件

        在该路径下,和上面的第二种方式类似,新建xml文件后,在xml文件中配置如下内容:启动Tomcat后访问路径也是:http://localhost:9099/helloword

<Context path="contextPath" docBase="projectPaht" />
在Tomcat的/conf/Catalina/localhost/路径下添加xml配置文件

4.1IDEA上集成Tomcat后,在Tomcat上部署任务的变化

        IDEA集成了Tomcat后,其原理和上面的第三种方式差不多,是通过在xxx/Catalina/localhost/路径下创建新的xml文件,且一个xml文件对应一个部署的web项目。但是和上面的方法三不同之处在于:IDEA并不是直接在Tomcat的系统路径%TOMAT_HOME%/conf/Catalina/localhost/下创建文件,IDEA并不会直接对Tomcat做修改,而是自己将%TOMAT_HOME%复制(我的理解是复制,更深的原理没有去了解)了出来,在这个环境中进行修改操作,从而不污染Tomcat的原始环境。如下图所示,Tomcat在IDEA中启动时,可以看到IDEA复制的环境。

IDEA继承Tomcat后启动Tomcat时的日志

总结以及小坑

        最后,总结一下:

1.踩坑:在IDEA中新建module时,不能将鼠标选中任何的module,否则新建出来的module会成为被选中的module的子项目

创建module时不能选中其他module

2. Tomcat上部署任务有三种方式:webapps、修改server.xml、新建xml等。

3.Tomcat可同时部署任务多个项目,需要每个项目有惟一的contextPath,才能够正确定位到每个任务。

4.IDEA集成了Tomcat后,不会对Tomcat原环境进行修改。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值