Tomcat组成与工作原理
707
2022-05-29
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 独立的进程单独运行的
。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和 IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态 HTML的能力不如Apache服务器。
目前Tomcat最新版本为
9.0
。
Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。
使用single sign-on valve有一些重要的限制:
1> value必须被配置和嵌套在相同的Host元素里,并且所有需要进行单点验证的web应用(必须通过context元素定义)都位于该Host下。
2> 包括共享用户信息的realm必须被设置在同一级Host中或者嵌套之外。
3> 不能被context中的realm覆盖。
4> 使用单点登录的web应用最好使用一个Tomcat的内置的验证方式(被定义在web.xml中的中),这比自定 义的验证方式强,Tomcat内置的的验证方式包括basic、digest、form和client-cert。
5> 如果你使用单点登录,还希望集成一个第三方的web应用到你的网站中来,并且这个新的web应用使用它自己的验证方式,而不使用容器管理安全,那你基本上 就没招了。用户每次登录原来所有应用时需要登录一次,并且在请求新的第三方应用时还得再登录一次。
6>
单点登录需要使用cookies。
目录结构
/bin:存放windows或Linux平台上启动和关闭Tomcat的 脚本文件
/conf:存放Tomcat服务器的各种全局 配置文件,其中最重要的是server.xml和web.xml
/doc:存放Tomcat文档
/server:包含三个子目录:classes、lib和webapps
/server/lib:存放Tomcat服务器所需的各种JAR文件
/server/webapps:存放Tomcat自带的两个WEB应用admin应用和 manager应用
/common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件
/shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)
/logs:存放Tomcat执行时的日志文件
/src:存放Tomcat的 源代码
/webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
/work:存放JSP编译后产生的 class文件
安全启动
Tomcat是一个世界上广泛使用的支持jsp和servlets的Web服务器。它在java上运行时能够很好地运行并支持Web应用部署。会因为设置不当,造成灾难性的后果。在Tomcat默认安装,Tomcat作为一个系统服务运行,如果没有将其作为系统服务运行,几乎所有Web服务器管理员都是缺省地将其以Administrator权限运行。这两种方式都允许Java运行时访问Windows系统下任意文件夹中的任何文件。缺省情况下,Java运行时授予安全权限。当 Tomcat以系统管理员身份或作为系统服务运行时,Java运行取得了 系统用户或系统管理员所具有的全部权限。这样一来,取得了同样的权限。所以Java代码可以调用Java SDK中的文件API、列出文件夹中的全部文件、删除任何文件,最大的危险在于以系统权限运行一个程序。当任一Servlets含有如下代码:
b4ae04fd6dYsJkr5 Runtime rt = Runtime.getRuntime();
rt.exec(”c:\SomeDirectory\SomeUnsafePRogram.exe”)
其服务是以system权限启动。根据权限最小安全原则,降低了脚本所获取的操作本地系统权限。此操作如下:
新建一个帐户
1. 用”ITOMCAT_计算机名”建立一个普通用户
2. 为其设置一个密码
3. 保证”密码永不过期”(PassWord Never Expires)被选中
修改Tomcat安装文件夹的访问权限
1. 选定环境参数CATALINA_HOME或TOMCAT_HOME指向的Tomcat安装文件夹。
2. 为”ITOMCAT_计算机名”用户赋予读、写、执行的访问权限。
3. 为”ITOMCAT_计算机名”用户赋予对WebApps文件夹的只读访问权限。
4. 如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。
Tomcat作为系统服务
1. 到”控制面板”,选择”管理工具”,然后选择”服务”。
2. 找到Tomcat:比如Apache Tomcat.exe等等,打开其”属性”。
3. 选择其”登录”(Log)标签。
4. 选择”以…登录”(Log ON Using)选项。
5. 键入新建的”ITOMCAT_计算机名”用户作为用户名。
6. 输入密码。
7. 重启机器。
在DOS窗口下运行Tomcat步骤
1. 在”开始”按钮的”运行”框中键入CMD以打开一个DOS窗口。
2. 键入”RunAs /user:ITOMCAT_计算机名 CMD.exe”命令。
3. 在询问”ITOMCAT_计算机名”用户的密码时输入设置的密码。
4. 这将打开一个新的DOS窗口。
5. 在新开的DOS窗口中,转换到Tomcat的bin文件夹内。
6. 键入”catalina run”命令。
7. 关闭第一个DOS窗口。
设置一下程序
CMD.EXE NET.EXE ATTRIB.EXE At.EXE NET1.EXE FTP.EXE TELNET.EXE COMMAND. COM CAcls.EXE netstat.exe;system 全部权限 ,其它用户无权限。
Servlet Tomcat
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。