一、tomcat各目录了解。

tomcat简单整理笔记!_整理

[root@xxxx ~]# cd /usr/local/tomcat6.0.45/

[root@xxxx 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

[root@xxxx 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 &quot;%r&quot; %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