hailai 发表于 2017-1-16 11:15:54

备忘:Tomcat笔记

基础的东东:
Tomcat作为servlet容器,负责处理客户请求,把请求传送给Servlet并把结果返回给客户。
当客户请求访问茉个Servlet时,Servlet容器将创建一个servletRequest对象和servletResponse对象。在ServletRequest对象中封装了客户请求信息,然后Servlet容器把servletRequest对象和servletResponse对象付给客户所请求的servlet。servlet把响应结果写到servletResponse中,然后由servlet容器把响应结果传给客户。
tomcat由一系列可配置组件构成。核心组件是Catalina Servlet容器,它是所有其他组件的顶层容器。tomcat组件可在<CATALINA_HOME>/conf/server.xml文件中配置。每个组件对应server.xml中的一种配置元素。
server.xml结构:

<!-- <Server>元素:代表整个Catalina Servlet容器,是Tomcat实例的顶层元素。可包含一个或多个<Service>元素。-->
<Server>
<!-- <Service>元素:包含一个<Engine>元素,以及一个或多个<Connector>元素,这些<Connector>元素共享同一个<Engine>元素。-->
<Service>
<!-- <Connector>元素:代表和客户程序实际交互的组件,负责接收客户请求,以及向客户返回响应结果。-->
<Connector/>
<!-- <Engine>元素:每个<Service>只能包含一个<Engine>元素。<Engine>元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。-->
<Engine>
<!-- <Host>元素:一个<Engine>元素中可包含多个<Host>元素,每个<Host>元素定义一个虚拟主机,它可以包含一个或多个WEB应用。-->
<Host>
<!-- <Context>元素:使用最频繁的元素。每个<context>元素代表了运行在虚拟主机上的单个WEB应用,一个<Host>可包含多个<Context>元素。-->
<Context></Context>
</Host>
</Engine>
</Service>
</Server>


Linux中安装tomcat
安装JDK。假定JDK安装在/home/java/j2sdk1.4.2目录下。
解压Tomcat,假定解压到/home/tomcat目录下。
设定环境变量:JAVA_HOME和CATALINA_HOME。
JAVA_HOME=/home/java/j2sdk1.4.2;export JAVA_HOME
CATALINA_HOME=/home/tomcat;export CATALINA_HOME
修改HTTP端口
tomcat采用的HTTP端口为“8080”,想采用HTTP端口“80”,修改<CATALINA_HOME>/conf/server.xml,将<Connector>元素的port属性值改为“80”,重启tomcat。
Tomcat目录
/server/lib下的JAR文件只可被tomcat服务器访问
/shared/lib 下的JAR文件可被所有的WEB应用访问,不能被tomcat访问
/common/lib 下的JAR文件可被tomcat和所有WEB应用访问
在WEB应用的WEB-INF下也可建立lib目录,放各种JAR文件,这些文件只能被当前WEB应用访问。
Tomcat配置虚拟主机
server.xml中,Host元素代表虚拟主机。同一个Engine元素下可配置多个虚拟主机。
如:两个公司的WEB应用都发布在同一个tomcat下,可为每家公司分别创建一个虚拟主机,主机名分别为:
www.mycompany1.com,www.mycompany2.com。
当用户 访问以上两个WEB应用时,就好像这两个应用分别拥有各自的主机。还可以建立虚拟主机的别名。如希望客户访问www.mycompany1.com或mycompany1.com都能连接到同一个WEB,就可以把mycompany1.com做为虚拟主机的别名来处理。
配置www.mycompany1.com虚拟主机
1.打开server.xml文件,在<Engine>下有一个名为localhost的<Host>元素,在</Host>后加入新的<Host>元素。

<Host name="www.mycompany1.com" debug="0" appBase="c:\mycompany1" unpackWAR="true" autoDeploy="true">
<alias>mycompany1.com</alias>
<alias>mycompany1</alias>
<Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true"/>
</Host>

Host属性
name:虚拟主机名字
debug:日志级别
appBase:虚拟主机目录,可指定绝对目录,也可相对于<CATALINA_HOME>根目录,无设定则默认为<CATALINA_HOME>/webapps
unpackWAR:是否先展开为目录结构后再运行
aotuDeply:自动发布
alias:虚拟主机别名,可指定多个别名
deployOnStartup:默认值为true。为true的话,则tomcat在启动上会自动发布appBase下的所有WEB应用。如果WEB应用在server.xml中没有相应的<Context>元素,则采用默认的Context配置。
2.把WEB应用复制到appBase指定的目录下。
3.在DNS服务器上注册以上的虚拟主机名和别名。使IP地址都指向tomcat所在的机器。注册以下名字:
www.mycompany1.com
mycompany1.com
mycompany1
4.重启tomcat
孙卫琴.Tomcat与Java.Web开发技术详解
页: [1]
查看完整版本: 备忘:Tomcat笔记