一、tomcat各目录了解。
[[email protected] ~]# cd /usr/local/tomcat6.0.45/
[[email protected] tomcat6.0.45]# ll
总用量 116
drwxr-xr-x 2 root root 4096 7月 22 13:03 bin
drwxr-xr-x 3 root root 4096 6月 30 17:55 conf
drwxr-xr-x 2 root root 4096 6月 30 17:53 lib
-rw-r--r-- 1 root root 56685 2月 2 2016 LICENSE
drwxr-xr-x 2 root root 4096 7月 5 03:16 logs
-rw-r--r-- 1 root root 807 2月 2 2016 NOTICE
-rw-r--r-- 1 root root 9124 2月 2 2016 RELEASE-NOTES
-rw-r--r-- 1 root root 16220 2月 2 2016 RUNNING.txt
drwxr-xr-x 2 root root 4096 6月 30 17:53 temp
drwxr-xr-x 7 root root 4096 7月 4 09:36 webapps
drwxr-xr-x 3 root root 4096 6月 30 17:55 work
[[email protected] tomcat6.0.45]#
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1、bin:
bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。
重要:
很多环境变量的设置都在此处,例如可以设置JDK路径、TOMCAT路径,startup 用来启动tomcat,shutdown 用来关闭tomcat,修改catalina可以设置tomcat的内存
2、conf:
conf目录主要是用来存放tomcat的一些配置文件。
重要:
server.xml可以设置端口号、设置域名或IP、默认加载的项目、请求编码,web.xml可以设置tomcat支持的文件类型,context.xml可以用来配置数据源之类的,tomcat-users.xml用来配置管理tomcat的用户与权限,在Catalina目录下可以设置默认加载的项目。
3、lib:
lib目录主要用来存放tomcat运行需要加载的jar包。
例如,像连接数据库的jdbc的包我们可以加入到lib目录中来。
4、log
logs目录用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的日志。(清空不会对tomcat运行带来影响)
在windows环境中,控制台的输出日志在catalina.xxxx-xx-xx.log文件中,在linux环境中,控制台的输出日志在catalina.out文件中。
5、temp
temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)
6、webapps
webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。当然,你也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。
7、work
work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。
清空work目录,然后重启tomcat,可以达到清除缓存的作用。
二、tomcat安装(略,比较简单)
三、tomcat配置层次
vim /usr/local/tomcat/conf/server.xml
<server>顶级组件
<service>二级组件
<connector />简单组件
<connector />(可以有多个)
<engine>定义虚拟主机(只能有一个)
<host>
<context> 上下文
</context>
</host>
<host>
</host>
</engine>
</service>
</server>
顶级组件:位于整个配置的顶层
容器类:可以包含其他组件的组件
连接器组件:连接用户请求至tomcat
被嵌套类的组件:位于一个容器当中,不能包含其他组件
容器类:
engine:核心容器,catalina引擎,负载通过connector接收用户请求
host:类似于httpd中的虚拟主机:支持基于FQDN的虚拟主机
context:最内层的容器类组件,一个context代表一个web应用程序:配置context的主要目的:指定对应的webapp的根目录,还能为webapp指定额外的属性,如部署方式等
服务:
service:将连接器关联至engine
因此一个service内部可以有多个connector,但只有一个engine
顶级组件:server,表示一个运行于JVM中的tomcat实例
嵌套类组件:
valve:阀门;拦截请求并在将其转至对应的webapp之前进行某种处理操作
access log value:
remote address filter value:基于IP做访问控制
logger:日志记录器,用于记录组件 内部的状态信息
可用于出context之外的任何容器中
realm:可以用于任何容器类的组件中,关联一个用户认证库,实现认证和授权
UserDatabaseRealm:使用JNDI自定义的用户认证库
MemoryRealm:tomcat-users.xml中
JDBCRealm:基于JDBC连接至数据库中查找用户
部署:使用类加载器,为webapp准备好其依赖的所有类
四、配置实例:
vim /usr/local/tomcat/conf/server.xml
server组件
<Server port="8005" shutdown="SHUTDOWN">(控制接口)
定义用户可以从8005端口,发送shutdown命令
不写监听地址默认是本机
可以利用telnet测试
举例:定义虚拟主机测试页:
vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" //定义域名
appBase="/var/www" //站点所在目录
unpackWARs="true"
autoDeploy="true">
<context path="" docBase="ROOT" //定义网站所在的子目录 相对路径;相当于/var/www/ROOT
reloadable="true" /> //是否允许重载
<context path="/test" docBase="testapp" reloadable="true" />
上述相当于定义了一个别名test 指向testapp 其中testapp路径是/var/www/testapp 在testapp下写index.jsp
当访问localhost/test时会自动跳转到testapp的index
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" // 日志存放路径
pattern="%h %l %u %t "%r" %s %b" /> //日志格式
</Host>
创建测试页vim /var/www/ROOT/index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>JSP test page.</title> <!-- 名字 -->
</head>
<body>
<% out.println("Hello,world!"); %>
</body>
</html>
*****************************************************************
配置详解:
检查配置文件是否错误
catalina.sh configtest
配置文件:
server.xml 核心配置
context.xml 为部署于Tomcat实例上的所有web应用程序提供的默认配置文件:
每个webapp都可以使用独有的context.xml,通常放置于webapp目录的META-INF子目录中
常用语定义会话管理器、realm以及JDBC
web.xml:为部署于此Tomcat实例上的所有web应用程序提供默认部署描述符;
通常用于为webapp提供基本的servlet定义和MIME映射表等
catalina.policy 当基于 -security选项启动实例时会读取此配置文件;
此文件是JAVA的安全策略配置文件,配置访问codebase或某次JAVA类的权限
logging.properties:定义日志相关的配置信息,如日志级别、文件路径等;
Tomcat 应用程序部署
部署是指webapp及其所依赖库等装载进tomcat实例上,以便接收用户请求。
部署方式:
静态:在tomcat启动之前进行的webapp部署
动态:在打断tomcat运行的前提下,通过tomcat manager或其他的命令行工具进行部署;
部署是由一类操作组成;
deploy:将webapp的源文件放置于目标目录、配置tomcat服务器能够基于某context路径访问此webapp,并将其特有的类由类加载器进行装载等
redeploy:重新部署。主要用于升级
undeploy:取消部署,停止应用程序并从tomcat实例上移除其部分文件和部署名
stop:停止
start:将停止的webapp启动起来
部署方式:
Tomcat Manager
ANT 脚本
TCD
war类归档程序的部署,将归档的文件复制到webapps目录中并重启tomcat即可
tomcat会自动展开war,也可以使用Tomcat Manager进行热部署;
webapp体系结构:
webapp有特定的组织格式,是一种层次性目录结构;
通常包含了servlet代码文件、jsp页面文件、类文件、部署描述文件等等,一般会打包成归档格式
/ : web应用程序的根目录 (/代表/usr/local/tomcat/webapps/ROOT)
/WEB-INF:此webapp的私有资源目录,通常web.xml和context.xml均放置于此目录
/WEB-INF/classes :此webapp自有的类
/WEB-INF/lib:此webapp自有能够打包为jar格式的类
webapp的归档格式
EJB类归档的扩展名为.jar
web应用程序的归档扩展名为.war
资源适配器的扩展名.rar
企业级应用程序的扩展名.ear
web服务的扩展名为.ear或.war
应用实例:
配置文件使用的默认
mkdir -p /usr/local/tomcat/webapps/testapp/WEB-INF/{classes,lib}
vim /usr/local/tomcat/webapps/testapp/index.jsp
<%@ language="java" %> //声明使用java语言
<%@ import="java.util.*" %> //导入Java类库
<html>
<head>
<title>JSP test page.</title> <!-- 名字 -->
</head>
<body>
<%
out.println("Hello,World!");
out.println("Good,nice!");
%>
</body>
</html>
重启tomcat 访问:IP/testapp