web笔记二:Tomcat的使用
来源:互联网 发布:仁霸玻璃优化软件 编辑:程序博客网 时间:2024/06/06 00:08
大多数情况下我们都是使用Tomcat开发web应用,所以,我们需要对Tomcat的配置有一定的了解,如端口配置、应用根目录、多Tomcat配置时需要更改哪些端口等。
下载解压Tomcat后,打开/conf/serve.xml,我们一般都能看到一下内容:
<?xml version="1.0" encoding="UTF-8"?><Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service></Server>
问题1:修改默认端口(8080)
<!-- 将8080端口改为8888 --><Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
问题2:如何自定义虚拟目录
<!-- 方法1:将虚拟目录改为D盘的projects目录下,webapps目录下的应用不再可用--><Host name="localhost" appBase="D:\projects" unpackWARs="true" autoDeploy="true">
<!-- webapps和D盘projects目录下的应用都可用 --><Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- 不要忽略path属性 --> <Context path="/" docBase="D:\projects"/> </Host>
这里可能会涉及到一个资源重复的问题,到最后讲。。。。
问题3:同一个机器部署多个Tomcat的问题
同一台机器部署多个Tomcat可能会引起端口占用的问题,所以部署多个Tomcat需要修改三个端口,分别是两个Connector.port和一个Server.port
<!-- 将默认的8005改为8006 --><Server port="8006" shutdown="SHUTDOWN"><!-- 将默认的8080改为8081--><Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /><!-- 将默认的8009改为8010--><Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /><!-- 省略其他部分 --></Server>
问题4:我希望使用指定的域名访问我的应用而不是localhost
第一步:
<!-- 将localhost改为你想要的域名,例如www.hxl.com --> <Host name="www.hxl.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
第二步:
打开C:\Windows\System32\drivers\etc\hosts文件,添加下面一行即可
127.0.0.1 www.hxl.com
说明,当我们浏览器去请求带有域名的url时,例如www.baidu.com/xxx,浏览器会依次执行下面的操作
1、查找本地hosts文件是否配置www.baidu.com映射的IP信息,找到则跳到第四步,否则执行下一步
2、查找路由器DNS配置信息,找到则跳到第四步,否则执行下一步
3、去互联网DNS服务器上查找IP,如果还找不到,则返回404找不到资源
4、根据IP和端口信息查找相应的资源信息,如果域名没有显式地标明使用哪个端口,则使用的是80端口
现在,我们回到第二点:
<!-- webapps和D盘projects目录下的应用都可用 --><Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- 不要忽略path属性 --> <Context path="/" docBase="D:\projects"/> </Host>
如果webapps和D:\projects都存在名为myweb的应用,那么我访问localhost:8080/myweb/xxx的时候,会去请求哪个目录下的web应用?结论是只会请求webapps下的web应用。
但是,如果webapps和D:\projects都存在一个静态资源文件,如index.jsp,当请求localhost:8080/index.jsp时,会优先请求D:\projects的静态文件。
如果配置的是
<Context path="/myweb" docBase="D:\projects"/>
那么,webapps下的myweb应用将失效。
以上结论都基于tomcat-8.5.15测试得到的结论,当然,一般情况下,我们都不会做一些有歧义的配置信息,而且,一个tomcat一般只会部署一个web应用。
- web笔记二:Tomcat的使用
- Tomcat的使用笔记
- Tomcat 与java web 开发技术详解笔记(二)----Servlet
- Docker学习笔记之二:web开发和Tomcat部署
- 学习笔记----Tomcat 的WEB 安全域
- Java Web基础教程三 ---------配置篇二tomcat配置使用
- JAVA WEB学习笔记(三)-Tomcat中数据源的配置和使用
- JAVA WEB学习笔记-Tomcat中数据源的配置和使用
- JAVA WEB学习笔记(三)-Tomcat中数据源的配置和使用
- java web笔记-tomcat
- maven web 项目 中 tomcat的使用
- Web服务器简介、Tomcat的基本使用
- 使用Maven构建SSM架构的JavaWeb项目的过程笔记(二):web.xml
- JSP学习笔记(二)-----使用Tomcat运行JSP文件
- JBoss, Tomcat等WEB服务器的优化策略(二)
- tomcat servlet与web.xml的配置说明二
- tomcat源码解析(二)--web.xml文件的解析
- Webservice学习笔记二,使用Axis发布简单的Web服务
- Android移动开发-蓝牙(BlueTooth)设备检测连接的实现
- JSP
- popupwindow在android7.0出现全屏解决方案
- 类加载器&注解&动态代理
- 原生JS获取当前时间
- web笔记二:Tomcat的使用
- mysql5.7在windows7下my.ini文件加载路径及数据位置修改
- 【干货#016】小程序后端Bmob入门:获取第一行数据
- 《数据库系统概念》13-索引
- 字符串有关(BIF)
- 数据规整
- 最短路径问题---Dijkstra算法详解
- 树莓派3B 设置Linux下程序自启动
- 阿里云服务器Ubuntu16安装anaconda