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
在浏览器中进行测试,结果如下:
阅读全文
0 0
- Tomcat 学习之简单构建
- gradle学习系列之eclipse中简单构建android项目
- Tomcat学习之Tomcat架构
- Tomcat学习之Tomcat架构
- Netty4.0学习笔记系列之三:构建简单的http服务
- Netty4.0学习笔记系列之三:构建简单的http服务
- Netty4.0学习笔记系列之三:构建简单的http服务
- Netty4.0学习笔记系列之三:构建简单的http服务
- Netty4.0学习笔记系列之三:构建简单的http服务
- Netty4.0学习笔记系列之三:构建简单的http服务
- Netty4.0学习笔记系列之三:构建简单的http服务
- Netty4.0学习笔记系列之三:构建简单的http服务
- 爬虫学习之Scrapy构建
- JAX-WS 构建简单webservice部署到tomcat上
- 《how tomcat works》第一章 构建一个简单的web服务器
- JAX-WS构建简单webservice部署到tomcat上
- Tomcat第一课--构建简单静态资源访问
- Java学习:线程池的简单构建
- cookie和session的区别与联系
- 【MyBatis学习08】高级映射之一对一查询
- 内积与外积
- Struts2 拦截器学习
- opencv学习——特征匹配和单应性查找图片
- Tomcat 学习之简单构建
- 根据相机内参数及畸变系数给图像去畸变
- numpy中where的使用和pandas中iloc的使用
- 关于MobclickAgent方法意图
- Excel解析
- 获取数据的三种遍历方式
- react_basic(1)
- HEX文件合并的方法简述
- [ElasticSearch]Kibana插件安装