Java Web学习系列(一) Tomcat简介及安装

Tomcat运行稳定、可靠、效率高,不仅可以和目前大部分主流的Web服务器一起工作,还可以作为独立的Web服务器软件;越来越多的软件公司和开发人员都是用它作为运行Servlet和JSP的平台

官网:https://tomcat.apache.org

安装环境为Ubuntu+JDK

Tomcat目录

下载Tomcat tar.gz安装包后,其目录及其功能为:

  • bin:用于存放Tomcat的可执行文件和脚本文件,如 startup.sh
  • conf:用于存放Tomcat的各种配置文件,如web.xml、server.xml
  • lib:用于存放Tomcat服务器和所有Web应用程序需要访问的JAR文件
  • logs:用于存放Tomcat的日志文件
  • temp:用于存放Tomcat运行时产生的临时文件
  • webapps:web应用程序的主要发布目录,通常将要发布的应用程序放到这个目录下
  • work:Tomcat的工作目录,JSP编译生成的Servlet源文件和字节码文件放到这个目录下

安装

查看JDK安装路径:

/usr/bin                                                                       
▶ ls -l java
lrwxrwxrwx 1 root root 22 9月   9  2019 java -> /etc/alternatives/java

/usr/bin                                                                       
▶ cd /etc/alternatives/

/etc/alternatives                                                              
▶ ls -l java
lrwxrwxrwx 1 root root 46 2月  28 21:07 java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

之后在startup.sh中最后一行exec ...前添加:

#set java environment
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre    
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
export PATH=${JAVA_HOME}/bin:$PATH

#tomcat
export TOMCAT_HOME=/opt/tomcat8

之后把Tomcat目录名称改为tomcat8,移动到/opt/下,在bin目录下启动命令行,输入

sudo ./startup.sh

访问http://127.0.0.1:8080/查看结果.如果想更改其监听的端口,可在server.xml中修改

Web应用

Web应用的目录结构:

查看conf/web.xml文件最后的配置:

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

上面的<welcome-file-list>用于配置默认页面列表,它包含多个<welcome-file>子元素,每个<welcome-file>子元素都可以指定一个页面文件,用户访问web应用时,如果没有指定具体要访问的资源,Tomcat会按照上面<welcome-file-list>指定的页面,依次查找这些页面,如果找到,将其返回给用户,没找到则返回提示页面

更改默认页面

默认的项目在webapps/ROOT下,现在更改其默认页面,访问主页后让其解析我们的test.html

1.在webapps/下新建目录Test,在Test里新建test.html,并将ROOT下的WEB-INF目录直接拷到Test目录下

2.修改webapps/Test/WEB-INF/web.xml,在里面添加:

<welcome-file-list>
    <welcome-file>test.html</welcome-file>
</welcome-file-list>

3.修改conf/server.xml,在<Host></Host>中添加:

<Context path="" docBase="/opt/tomcat8/webapps/Test" debug="0" reloadable="true" />

path说明虚拟目录的名字,只要输入ip地址就显示主页,则该值为空即可;docBase指定的是tomcat默认的主页所在目录;debug调试模式;reloadable配置是否自动加载编译

最后重启即可看到效果

如果不更改默认页面的话,配置好app后访问需要加上相应目录,比如127.0.0.1/Test/

平台管理

有三个管理功能:Server StatusManager AppHost Manager,进入需要输入用户名和密码,但初始是没有设置的,需要自己设置

Tomcat定义了以下角色:

  • admin-gui — 可访问 “host管理” 页面,但”APP管理” 和 “服务器状态” 页面无查看权限
  • manager-gui — 无 “host管理” 页面访问权限,有”APP管理” 和 “服务器状态” 页面查看权限
  • manager-status — 只有”服务器状态” 页面查看权限
  • manager-script — 有脚本方式管理接口访问权限和”服务器状态” 页面查看权限
  • manager-jmx — JMX 代理接口访问权限和”服务器状态” 页面查看权限
  • admin-script — 只有host-manager脚本方式管理接口访问权限

后三种角色用在没有UI功能的机器上,通过shell请求来操作tomcat

添加用户:在conf/tomcat-users.xml中添加:

1
2
3
4
5
<role rolename="manager-gui"/>
<user username="gtfly" password="123" roles="manager-gui"/>

<role rolename="admin-gui"/>
<user username="admin" password="123" roles="admin-gui"/>

Tomcat8默认启用了网段限制,127网段的才有访问权限,如果其他网段想要访问,则需要进行修改webapps/manager/META-INF/context.xmlwebapps/host-manager/META-INF/context.xml