目录
Idea集成Tomcat、JavaWeb项目的创建、部署、发布
Tomcat介绍
关于服务器
服务器的概念非常的广泛,它可以指代一台特殊的计算机(相比普通计算机运行更快、负载更高、价格更贵),也可以指代用于部署网站的应用。我们这里说的服务器,其实是web服务器,或者应用服务器。它本质就是一个软件,一个应用。作用就是发布我们的应用(工程),让用户可以通过浏览器访问我们的应用。
常见的应用服务器,请看下表:
服务器名称 | 说明 |
---|---|
weblogic | 实现了javaEE规范,重量级服务器,又称为javaEE容器 |
websphereAS | 实现了javaEE规范,重量级服务器。 |
JBOSSAS | 实现了JavaEE规范,重量级服务器。免费的。 |
Tomcat | 实现了jsp/servlet规范,是一个轻量级服务器,开源免费。 |
Tomcat下载与安装
Tomcat官网下载地址:Apache Tomcat® - Welcome!
Tomcat各版本所需支持
Tomcat目录结构详解
这里用的是windows版本,下载好的Tomcat是绿色版的,直接解压就能使用
Tomcat基本使用
Tomcat启动和停止及问题分析解决
1)启动和停止
Tomcat服务器的启动文件在二进制文件目录中:,这两个文件就是Tomcat的启动文件。
Tomcat服务器的停止文件也在二进制文件目录中:,这两个文件就是Tomcat的停止文件。
其中.bat文件是针对windows系统的运行程序,.sh文件是针对linux系统的运行程序。
启动后是这样的,这时我们打开浏览器,地址栏输入http://localhost:8080/
这时出现这个界面就登陆成功了。
接下来发布自己的网页,进入webapps目录下,新建一个文件夹test
里面存放一个html文件,再到地址栏输入http://localhost:8080/test/hello.html看看是否发布成功
后面的test/hello.html是自己创建的。
2)启动问题
第一个问题:启动一闪而过
原因:没有配置环境变量。
解决办法:配置上JAVA_HOME环境变量
第二个:Address already in use : JVM_Bind
原因:端口被占用
解决办法:找到占用该端口的应用
进程不重要:使用cmd命令:netstat -a -o 查看pid 在任务管理器中结束占用端口的进程。
进程很重要:修改自己的端口号。修改的是Tomcat目录下\conf\server.xml中的配置。
第三个:启动产生很多异常,但能正常启动
原因:Tomcat中部署着很多项目,每次启动这些项目都会启动。而这些项目中有启动报异常的。
解决办法:
能找到报异常的项目,就把它从发布目录中移除。
不能确定报异常的项目,就重新解压一个新的Tomcat。
第四个:控制台乱码问题,启动时发现控制台里面有乱码
这是因为字符集没有匹配
解决方式:apache-tomcat-9.0.29\conf目录下找到logging.properties这个文件,打开编辑器
大概第51行这个位置,它的编码默认为UTF-8,而控制台是GBK,所以改成GBK就好了,再启动一下看看是不是没有乱码了。
其它问题:
例如:启动产生异常,但是不能正常启动。此时就需要解压一个新的Tomcat启动,来确定是系统问题,还是Tomcat的问题。
所以,此时就需要具体问题,具体分析,然后再对症解决。
Idea集成Tomcat、JavaWeb项目的创建、部署、发布
Idea集成Tomcat
打开idea,在菜单栏中找到Run,选择Edit Configurations
进入这个界面,左边Templates(第一次配置应该是Default),选择Tomcat Server,Local,到右边点击Configure,选择tomcat解压的路径,点击ok,全都确定,这个时候tomcat就集成好了。
创建项目
配置完成后,页面貌似没有什么变化,那么我们怎么使用tomcat呢?我们先创建个项目,注意这里不要选择java项目,选择第二个Java Enterprise的JavaEE项目,右边选择对应的JDK版本,第三栏就是我们的Tomcat
创建完后,下边有个services选项卡,tomcat就在这里。
现在我们还需要再在这里创建一个模块
选择module
选择javaEE项目,选择jdk版本,选择javaEE版本,这里不用8版本是因为需要自动创建一个配置文件,下面有个WebApplication的选项勾选,然后在最下面有版本,勾选创建配置文件,next
起一个名字,点击finish
确认使用的版本,点击finish
这就是创建好的目录结构,src主要用来放源代码,web目录下放项目相关资源的一些文件,如html,css,js,jsp,图片等,WEB-INF用来放web的配置文件,jar包等
应用部署
部署完成。
项目发布
启动后右边弹出日志,并自动打开浏览器,注意地址栏的地址与自己的端口是一致的
那么这个END是什么呢?我们打开index.jsp文件
发现这里的一样,可以修改一下内容,再访问一次,发现变成你修改的内容了
这说明默认打开的就是index.jsp文件
通过war包发布项目
上面是通过IDEA工具中发布测试的,这属于开发环境,而我们生产环境应以如下的方式进行。
第一步:使用jar -cvf war 包的名称 当前目录中哪些资源要打入war
第二步:把打好的war拷贝到tomcat的webapps目录中
第三步:启动服务时,tomcat会自动解压。
Tomcat配置
tomcat配置文件都在conf目录下
Tomcat默认项配置
配置默认端口
Tomcat服务器主配置文件中配置着访问端口,它在配置文件中写的值是:8080。但是它不是Tomcat的默认端口。我们此处说的默认端口是,当使用默认值的时候,端口号可以省略。Tomcat的默认端口是80。
配置方式如下:
conf目录下找到server.xml文件
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
输入网址时必须写8080,为了省去,所以我们要将配置文件的8080改为80。
这样我们在浏览器的地址栏仅仅输入localhost就能访问了
配置默认主页
首先要明确的是,配置默认主页是针对应用说的。是应用的默认主页。
在 tomcat\webapps\ROOT 下面有一个index.jsp是tomcat的默认主页,如果你要修改成你自己的主页,将你的主页拖到这个目录,然后改名为index(如:index.html)重启tomcat就可以了,也可以直接打开tomcat\conf\web.xml,里面有一个<welcome-file-list>,自己定义名字也可以。
先将你自己的主页拖到webapps\ROOT目录下,
在应用的web.xml中配置:
<welcome-file-list>
<welcome-file>默认主页</welcome-file>
</welcome-file-list>
例如:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Tomcat配置虚拟目录
首先我们要了解的是必须再webapps的目录下的文件才能访问到,而虚拟目录可以打破这个局限,可以访问主机上任意的文件,这就是虚拟目录的作用。
虚拟目录的配置,支持两种方式。第一种是通过在主配置文件中添加标签实现。第二种是通过写一个独立配置文件实现。
第一种方式:在server.xml的<Host>元素中加一个元素。 path:访问资源URI。URI名称可以随便起,但是必须在前面加上一个/ docBase:资源所在的磁盘物理地址。
在大约163行的位置插入代码,这个myWeb是我在d盘下创建的例子
<Context path="" docBase=""/>
保存后再开启tomcat,用浏览器访问试试。
第二种方式:是写一个独立的xml文件,该文件名可以随便起。在文件内写一个<Context/>元素。 该文件要放在Tomcat目录中的conf\Catalina\localhost\目录下。 需要注意的是,在使用了独立的配置文件之后,访问资源URI就变成了/+文件的名称。而Context的path属性就失效了。
Tomcat配置虚拟主机
虚拟主机的作用:可以访问指定路径的名称
什么意思呢?就是我们的地址栏名称是localhost,我们能不能将其变成其他网页那样的域名呢,当然是可以的,虚拟主机就可以实现。
依旧是编辑server.xml文件,在<Engine>元素中添加一个<Host name="" appBase="" unparkWARs="" autoDeploy="" />,其中: name:指定主机的名称 appBase:当前主机的应用发布目录 unparkWARs:启动时是否自动解压war包 autoDeploy:是否自动发布
配置示例如下:
<Host name="www.symcyixin.com" appBase="D:\myWeb"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="D:/myWeb"/>
</Host>
我们的配置文件中原本就有个默认的名称,这也是为什么我们的地址栏要输入localhost的直接原因
在Engine标签下插入这些内容,注意还有虚拟目录的配置
注意还没完,还需要到C盘C:\Windows\System32\drivers\etc这个目录下,找到hosts文件,
添加
后面的是你自己想要绑定的域名,保存,提示要权限,选择是。
在这里添加一些文件,如html,这里建议把webapps目录下的ROOT文件夹复制过来,这样就有默认打开页面。
然后启动tomcat,使用新的 域名+文件路径 在浏览器试试。