tomcat学习笔记1
tomcat是一个开源软件,是由java语言编写的,它工作的话需要运行在jvm虚拟机中,说到jvm不得不说下java这个大名鼎鼎的编程
语言了
java这个编程语言最优秀的特点要数write once , run anywhere 额!怎么听起来有点流氓的感觉 没错,而这全是依赖于jvm这个
虚拟机,使得java可以在任何平台运行,这恐怕也是java为什么这么流行的原因吧
简单的说jvm虚拟机既是个编译环境为程序员提供许多的库,又是个运行环境java语言写的程序都需要在jvm上运行,而jvm自己却是
使用c语言开发的,使得性能没的说 “好”
有一个非常重要的工具jdk(java development kit)是为java程序员写程序用的,而jdk中就包含了jvm
1998年 sun公司把java技术分为三个方向
J2SE:Standard Edition
J2EE:Enterprise Edition(比J2SE 提供更多工具和库)
J2ME:Mobile Edition 很遗憾这个版本到现在搞得不成功
后来sun把java技术卖给Oracle这个大公司,不过2006 sun公司开源了java技术并有一个叫openjdk的组织来维护,从此java 2 SE
java 2 EE出现了
tomcat 就是使用了java 2 SE 和java 2 EE中的一些组件 更形象的说是一个web container,作用是使得java程序员写的.jsp网页能
都通过tomcat发给客户端
tomcat的组件:
<Server>
<Service>
<connector/>
<connector/>
<Engine>
<Host />
<Host>
<Context/>
...
</Host>
</Engine>
</Service>
</Server>
htpp的请求通过cgi或者java支持的其他协议被发送到server(一个server中可以有多个service)server通过connector(一个
service可以有多个connector)发送给Engine(一个service只能包含一个engine)
所有工作就在Engine中的Host和Context中完成一个(一个engine可以包含多个host,host下又可包含多个context)
既然tomcat依赖jvm那就先得在centos下安装jdk
现在主流版本是1.7 yum -y install java-1.7.0-openjdk-devel (openjdk这个包会被作为依赖关系也给装上)
查看版本
可以看到这是个链接文件
这又是个链接,如果主机上有多个java版本可以使用alternatives命令来决定使用哪个版本
openjdk的许多命令的运行依赖$JAVA_HOME这个环境变量
vim /etc/profile.d/java.sh
exec bash 重启bash进程
注意tomcat在epel源中,首先得安装epel源,我这事先已经安装了
yum -y install tomcat tomcat-admin-webapps tomcat-webapps安装这几个必要组件(后面两个可以不用装,它们是提供一个
web管理页,和一个普通web页面目的用于测试tomcat安装是否成功)
这些组件具体什么作用使用yum -info 命令查看
rpm -ql tomcat
/etc/tomcat/server.xml是tomcat的主配置文件 service tomcat start ss -tnl查看监听的端口
8009和8080两个端口都被监听了 去查看配置文件vim /etc/tomcat/server.xml
原来是这两个地方定义的 Connector是连接器
去访问一下
ss -tnl
发现多了一个8005端口, vim /etc/tomcat/server.xml
可以通过telnet命令关掉此端口,yum -y install telnet
service tomcat start
8005端口没有了,这样看着就更简洁了
webapp的文件根目录默认放置在/usr/share/tomcat/webapps目录下,现在去此目录建个自己的webapp
Java Webapp 有特定的组织形式、层次型的目录结构
/:webapps的根目录
index.jsp:jsp的主页面文件
WEB-INF/:当前webapp的私有资源目录,通常存放当前webapp自用的web.xml
classes/: 当前webapp的私有类
lib/:当前webapp的私有类,被打包成jar格式
cd /usr/share/tomcat/webapps(这是个软链接) mkdir myapp mkdir {classes, WEB-INF,lib}
vim index.jsp
去浏览器中查看一下
回到默认虚拟主机
点击Manager App
点击取消
vim /usr/share/tomcat/conf/tomcat-user.xml 添加如下几行
service tomcat restart Manager App和Host Manager都能访问了
vim /etc/tomcat/server.xml
Engine:Server的一个实例,即引擎,其内部可以有一个或多个Host组件来定义站点;通常需要通过defaultHost的属性定义默认虚
拟主机
Host组件:位于Engine容器中用于接收请求并进行相应处理的主机或虚拟主机
appBase:存放webapp页面资源的目录,可以使用绝对路径也可使用相对路径,此处使用的是相对路径webapps--
>/usr/share/tomcat/webapps
unpackWars:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true
autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy;默认为true
自己手动创建一台虚拟主机
mkdir -pv /data/myapps/ROOT ROOT(这个目录是存放webapp网页资源文件的默认目录) cd /data/myapps/ROOT mkdir
{classes,lib,WEB-INF} service tomcat restart
vim index.jsp 将前面的 .jsp复制过来
继续在该虚拟主机下定义一<Context/>
上面这图有一点错误在此更正,fine的前面应该有根/,即path=“/fine”
path指的是hello.com/fine testapp相对于/data/myapps的路径-->/data/myapps/testapp,也可以使用绝对路径
reloadable是否支持自动装载文件每当文件改变时
cd /data/myapps mkdir -pv testapp/{lib,classes,WEB-INF} cd testapp
vim index.jsp
tomcat的Realm 这个组件平时不用,不用管了
Valve 类似于过滤器 工作于Engine和Host/Context之间,Host和Context之间以及Context和Web应用程序的某资源之间,一个
server内可以建立多个Valve,而且Valve定义的次序也决定了它们生效的次序
vim /etc/tomcat/server.xml
className 定义这个Valve的名字 AccesslogValve访问日志(Valve可以定义在Host,如果定义在Host中则对所有Context生效,
也可以单独定义在Context中指对一个Context生效),前面的一大堆只是为了这个className的名字保持唯一(不用去管它)
directory="logs" 相对于/usr/share/tomcat而言的-->/usr/share/tomcat/logs,也可使用绝对路径
prefix指定日志文件前缀
suffix指定日志文件后缀
pattern指定日志的记录格式
每个虚拟主机都可定义自己的AccessLogValve,格式就是上面图的格式一样,不过此日志格式跟apache的httpd日志记录格式不一样
很多时候为为了做日志分析需要将tomcat的日志格式更改为htppd的日志格式,很简单把pattern更改为combined就行:
pattern="combined"
继续使用Valve 基于ip地址做访问控制,在新定义的虚拟主机中做测试
补充:建议使用普通用户运行tomcat,在生产环境下webapp很少进行热部署,一般使用冷部署
转载于:https://www.cnblogs.com/linuxboke/p/5427792.html
tomcat学习笔记1相关推荐
- TOMCAT学习笔记
TOMCAT学习笔记 (2011-10-03 17:03:26) 转载▼ 标签: 杂谈 分类: 编程 2011年10月3日 1.TOMCAT总体来说由两部分组成:connector和container ...
- Tomcat学习笔记02【Tomcat部署项目】
Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...
- Tomcat学习笔记01【Web相关概念、Tomcat基本操作】
Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...
- Tomcat学习笔记(三)—— Server组件
前面已经初步了解了Server组件是什么东西及其作用.在这里进一步对Server组件进行研究学习. Server组件 从Tomcat的层次结构中已经知道Server组件是Tomcat最顶层组件,它可以 ...
- tomcat学习笔记(JDK+TOMCAT+AXIS)
总算开始动手毕设了.先搭建web service的平台吧,要 jdk(1.6)+tomcat(5.5.27)+axis(1.4),还要下载四个独立的包:activation.jar mail.jar ...
- Tomcat 学习笔记(0)
JavaWeb 用Java写的程序,可以在浏览器运行. Request & Responce Web资源 Web服务器 我们在自己的主机启动Tomcat服务器,然后运行它,就能够通过主机访问这 ...
- Tomcat 学习笔记
Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat ...
- Tomcat学习笔记(2)- 整体架构
文章目录 1. Server组件 2. Service组件 3. Connector组件 4. Engine组件 5. Host组件 6. Context组件 7. Wrapper组件 8. 处理请求 ...
- Tomcat学习笔记(5)- 容器(Engine、Host、Context、Wrapper)
Engine即为全局引擎容器,它的标准实现是StandardEngine. Host在整个Servlet引擎中抽象出Host容器用于表示虚拟主机,它是根据URL地址中的主机部分抽象的,一个Servle ...
最新文章
- 打牌软件可以控制吗_使用crm软件真的可以帮助企业省钱吗
- java.math.BigDecimal保留两位小数,保留小数,精确位数
- 计算机右键管理中没有用户管理,我的电脑右键菜单中没有管理选项如何解决? 我的电脑右键菜单中没有管理选项解决的方法有哪些?...
- windows照片查看器无法显示此图片_Real3d PhotoViewer下载-照片查看器 v1.2.2 官方版...
- 从Run Simple到Run Live,SAP有哪些新变化?
- 查看linux是几位的操作系统
- 让程序员不再苦逼的四大神器
- Linux内核defconfig在哪,Linux内核根目录中的配置文件.config中包含了许多宏定义,...
- aMDcpu不支持mysql_Oracle 11.2.0.1在AMD CPU 64位硬件,32位操作系统下的BUG 8670579
- python人工智能面试题_AI笔试面试题库-Python题目解析4
- 在VS2010开发的MVC3 应用程序中设定默认的浏览器
- LeetCode 404. 左叶子之和(递归)
- 现代软件工程 作业 团队第一个作业
- 【转载】某牛逼的文章《曝光一下我开发的游戏项目的日报周报 》
- unity小技巧总结
- find和grep命令合集
- 循环小结的存在必然性的证明
- 企业微信API之通讯录同步
- 如何将绿色软件制作成云端平台中的软件包
- Spring 微服务实战