Tomcat 学习之简单构建

来源:互联网 发布:安卓软件免费源码 编辑:程序博客网 时间:2024/06/15 12:06
利用闲暇时间,从头开始系统学习一下Tomcat。
一、什么是Tomcat?
Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
二、快速入门
下面通过一个简单示例快速入门。
1,新建一个server

new-->Server-->输入端口名称(可以改变,一般都是默认就好)。


2,打开修改$CATALINA_HOME/conf/server.xml文件,其中大部分都采用了默认设置,只是在engine容器中添加了两个Host容器。
<?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" enableLookups="false" />    <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容器作为虚拟主机 --><!-- 属性说明      port:指定一个端口,这个端口负责监听关闭Tomcat的请求      shutdown:向以上端口发送的关闭服务器的命令字符串  -->       <Host name="www.longshuai.com"  appBase="/www/webapps/longshuai"            unpackWARs="true" autoDeploy="true">          <Context path="" docBase="/www/webapps/longshuai" reloadable="true" />          <Context path="/xuexi" docBase="xuexi" reloadable="true" />        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"               prefix="longshuai_access_log" suffix=".txt"               pattern="%h %l %u %t "%r" %s %b" />      </Host>      <Host name="www.xiaofang.com"  appBase="/www/webapps/xiaofang"            unpackWARs="true" autoDeploy="true">          <Context path="" docBase="/www/webapps/xiaofang" reloadable="true" />          <Context path="/xuexi" docBase="xuexi" reloadable="true" />        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"               prefix="xiaofang_access_log" suffix=".txt"               pattern="%h %l %u %t "%r" %s %b" />      </Host>      <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>
除了engine中定义的默认localhost虚拟主机,另外布置了两个虚拟主机www.longshuai.com和www.xiaofang.com,它们的程序目录分别为/www/longshuai和/www/xiaofang,所以需要提前建立好这两个目录。另外,在context中定义了docBase,对于uri路径/xuexi,它的文件系统路径为/www/{longshuai,xiaofang}/xuexi目录,所以也要在上面两个程序根目录中定义好xuexi目录。除此之外,还分别为这3个虚拟主机定义了日志,它们的路径为相对路径logs,相对于$CATALINA_HOME。
再提供appBase目录和docBase目录。
mkdir -p /www/{longshuai,xiaofang}/xuexi
再提供测试用的index.jsp文件。内容大致如下,分别复制到/www/{longshuai,xiaofang}/和/www/{longshuai,xiaofang}/xuexi/下,并将out.println的输出内容分别稍作修改,使能够区分读取的是哪个index.jsp。
<%@ page language="java" %><%@ page import="java.util.*" %><html>  <body>    <% out.println("hello world from longshuai Root"); %>  </body></html>
最后重启catalina。
catalina.shstopcatalina.shstart
再测试主机上添加www.{longshuai,xiaofang}.com的host记录。例如在windows上,在C:\Windows\System32\drivers\etc\hosts中添加如下记录:
192.168.100.22 www.longshuai.com www.xiaofang.com
在浏览器中进行测试,结果如下:


原创粉丝点击