tomcat简单整理笔记!

一、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 &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

时间: 2024-08-02 10:56:45

tomcat简单整理笔记!的相关文章

how tomcat works 读书笔记(二)----------一个简单的servlet容器

app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/article/details/39378157) 回顾我们上一章,我们开发了一个最最简单的web服务器,它可以使用户访问服务器内的静态资源.当然这是远远不够的,在这一节里,我们就试着让服务器在能相应静态资源的基础上继续支持servlet. servlet接口 javax.servlet.Servlet接口

sk_buff整理笔记(二、操作函数)

承接上一篇:sk_buff整理笔记(一.数据结构)这一篇要讲的是内核为sk_buff结构提供的一些操作函数. 第一.首先要讲的是sk_buff中的四大指针: 四大指针分别是:head.data.tail.end:这四个指针都是指向了数据区的,数据区中存放的是协议头和数据.head和end指针是每个数据包一样的,也是有这两个指针来确定数据区的大小的.最开始的时候head.data.tail三个指针都是指向一起的,当有协议数据加进来时才更改. 再来说下包的形成,首先是应用层的数据,然后到四层加上四层

jQuery整理笔记八----jQuery的Ajax

Ajax,我一直读的是"阿贾克斯",据当时大学老师讲该读音出处是根据当年风靡欧洲的荷兰足球俱乐部阿贾克斯的名字来的,我觉得说法挺靠谱的. jQuery封装了Ajax的交互过程,用户不需要考虑XMLHttpRequest对象的兼容性问题以及使用XMLHttpRequest建立连接.发送请求.发送方式.接收方式等细节,利用jQuery定义 的几个简单方法,即可轻松实现客户端与服务端异步通信的问题,从而帮助开发人员从繁琐的技术细节中解脱出来,专心于业务层开发工作. 最初始的JavaScrip

jQuery Easy UI整理笔记目录

jQuery Easy UI整理笔记目录 ps:最近对Easy UI比较感兴趣,打算系统的学习一下,前面基础部分的东西很简单,都是参照API去写的,例子也就是随便举的,没有列举项目中的实际应用. 打算基础部分后面的知识多投入点时间,多与项目中的实际相结合一些,也尽量多想象出一些应用场景. 计划最慢每周更新一篇文章. 一.基础组件部分 1. jQuery Easy UI的使用 2. jQuery Easy UI Draggable(拖动)组件 3. jQuery Easy UI Droppable

jQuery整理笔记九----功能性表格开发

示例中用到的一些图片.插件.样式文件等下载地址:点我进入下载 过去在开发过程中关于table方面的jquery应用仅仅是局限于使用jquery操作table增加一行.删除一列等等操作.今天整理的跟过去用的不一样. 1.uiTableFilter uiTableFilter是一款表格数据行过滤插件,使用很简单,具体用法如下: $.uiTableFilter(table,phrase)  该函数包含两个参数,其中第一个参数为jQuery对象,即为jQuery方法匹配的表格,或者也可以是jQuery匹

[设计模式整理笔记 一] 基础知识

[设计模式整理笔记 一] 基础知识 [导读] [设计模式整理笔记 一] 基础知识 [设计模式整理笔记 二] 简单工厂模式(Simple Factory) [设计模式整理笔记 三] 工厂模式(Factory) [设计模式整理笔记 四] 抽象工厂模式(Abstract Factory) [设计模式整理笔记 五] 创建者模式(Builder) [设计模式整理笔记 六] 工厂模式与创建者模式总结 [设计模式整理笔记 七] 原型模式(ProtoType) [设计模式整理笔记 八] 单例模式(Singlet

iOS 整理笔记 获取手机信息(UIDevice、NSBundle、NSLocale)

/*    iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用户设备.系统信息.应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息,是通过开发api可以获取到的.那么通过那些api可以获取这些信息呢,iOS的SDK中提供了UIDevice,NSBundle,NSLocale.    UIDevice        UIDevice提供了多种属性.类函数及状态通知,帮助我们全方位了解设备状况.从检测电池电量到定位设备与临近感应,UIDevice

PHP语言基础简单整理

1.开始结束标记<? ... ?> 2.定义变量:$变量名 例: $str="锦清笋";不需要指明数据类型 3.输出语句:(1)echo "hello world!";---echo命令(2)print();输出语句,是函数,有返回值.输出成功返回1,失败返回0.(3) printf();格式化输出字符串.例:printf("%d,%f",12,12.3); (4)sprintf();格式化拼接字符串,不是输出语句,只能将字符串拼接.

jQuery整理笔记七----几个经典表单应用

1.文本框获得(失去)焦点 当文本框获得输入焦点时,将该文本框高亮显示,算不得一个应用,仅仅是一个小技巧,能够提高用户体验. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/