Tomcat学习

来源:互联网 发布:钢筋配料软件 编辑:程序博客网 时间:2024/06/04 18:37

-------------------------------------------------------URL---------------------------------------------------------

URL Uniform Resource Locator 统一资源定位符

http://www.taobao.com:80/admin/index.html

http 浏览器使用的协议

www.taobao.com  表示web服务器的主机名或者是ip地址

80       表示web服务器所监听的网络端口号,如果使用80端口,则可以省略书写

admin/index.html  要访问的网页文档在web服务器上的路径信息

 

 

-------------------------------------------------------批处理-----------------------------------------------------

可以用记事本编写一个批处理文件 后缀名为.bat

例如 test.bat文件

echo off

dir

ping localhost

 

echo off------------禁止后面批处理命令显示在屏幕上,不包括自身命令,echo off还会显示在屏幕上

dir-------------------列出当前路径下的文件及文件夹目录列表

ping localhost-----访问本机

在每句代码前加一个@符号 也可以禁止批处理命令显示在屏幕上,与echo off效果相同,只是每句都要加很麻烦

可以在echo off代码前加上@,让echo off这句代码也不显示在屏幕上

 

Set os------------系统返回操作系统名称  Windows 2000 显示其操作系统为 Windows_NT

Setlocal----------开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后,所做的环境改动只限于批处理文件。要还原原先的设置,必须执行ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行

set java_home=C:/Program Files/Java/jdk1.5.0_04   设置java_home的路径

if exist “%CATALINA_HOME%/bin/setenv.bat”call “%CATALINA_HOME%/bin/setenv.bat”

如果在%CATALINA_HOME%/bin路径下存在setenv.bat批处理文件,那么就执行setenv.bat批处理文件,     exist:存在     call:执行

Start ping localhost ----------start表示开启一个新的cmd窗口 执行start后边的命令 命令完成以后,新建的cmd窗口就会自动消失

Start ping –t localhost 表示开启新的cmd窗口后,一直ping下去,可以使用ctrl+c来中断

Start “名字”-------------表示可以在start后边定义一个字符串,作为新cmd窗口的名字

Cls----------------清楚屏幕,起始行为第一行

 

在批处理中设置文件夹的路径

windows的环境变量中设置了C:/oracle/ora92/bin;

setORACLE_HOME=%ORACLE_HOME%  用每一层目录路径来指引下一层目录路径

setROOT=%ORACLE_HOME%/Apache

setAPACHE_HOME=%ROOT%/Apache

setJSERV_HOME=%ROOT%/Jserv

setLOG=%JSERV_HOME%/logs

-------------------------------------------------------Tomcat------------------------------------------------------

Tomcatsun公司用于运行JSPServlet的引擎,

Jakarta Tomcat服务器是在SUN公司的JSWDKjavaServer Web DevelopmentKit,SUN公司推出的小型Servlet/JSP调试工具)的基础上发展起来的一个优秀的Servlet/JSP容器,它是Apache-Jakarta软件组织的一个子项目。它不但支持运行ServletJSP,而且还具备了作为商业java Web应用容器的特征。) 

网址是:http://jakarta.apache.org/

Jakarta项目是在Apache軟件基金會营运的公开源代码软件开发项目之一。开发着面向编程语言Java程序库框架等。

JakartaApache组织下的一套Java解决方案的开源软件的名称,它的名称是想把与Jakarta关系非常深的爪哇岛关联起来。编程语言Java的命名源自这个岛的名字(印尼語  Jawa英語Java),而城市雅加达Jakarta)正是这个岛上的第一大城市,也是印度尼西亚的首府。

Jakarta项目所包括的相关工具、库以及框架:

BCEL - 处理Java字节码的类库

BSF - 脚本程序框架

Cactus - 服务器端Java类测试工具框架

ECS - TheElement Construction Set is a Java API for generating elements for variousmarkup anguages.

HttpComponents-超文本传输协议.

JCS - 分布式缓存系统.

JMeter - 压力测试工具

ORO -Java classes that provide Perl5 compatible regular expressions.

Regexp - Java正则表达式包

Slide - acontent repository primarily using WebDAV.

Taglibs -Repository for JSP custom tag libraries.

以前隶属于Jakarta项目,但现在作为Aapche软件基金的单独项目:

Ant- 构建工具

Commons -一组使用类的合集,主要作为Java标准库的补充

HiveMind- a services and configuration microkernel

Maven- 一个项目构建和管理工具

POI- a pure Java port of Microsoft's popularfile formats.

Struts - a web application developmentframework

Tapestry- A component object model based on JavaBeans properties and strongspecifications

Tomcat- 服务器,提供JSP/Servlet相关容器类

Turbine -web应用快速开发框架

Velocity- 模板引擎

 

tar.gz文件是Linux操作系统下的安装版本

exe文件是Windows系统下的安装版本

zip文件是Windows系统下的压缩版本

Tomcat5对应的必须使用JDK1.5

非安装压缩版的Tomcat可以使用Tomcat/bin目录下的批处理文件来启动与关闭

startup.bat     启动

shutdown.bat   关闭

使用批处理文件启动或关闭tomcat需要在批处理文件中配置java_home的路径

右击startup.bat 选择编辑

在第一行@echo off换行后

输入setjava_home=C:/Program Files/Java/jdk1.5.0_04   本机的JDK主目录的路径

虚拟web目录的概念

http://www.helloworld.com/book/test.html

www.helloworld--------表示web服务器的名称和地址

后边的/-------------------表示web服务器上的站点根目录,对应到服务器的本地文件系统目录

Book/----------------------表示站点根目录下边的名称为book的站点子目录

 

一个文件系统目录可以被映射成为多个虚拟web目录

虚拟web子目录名称可以是多级目录结构的形式

Tomcat按照最长路径匹配原则处理请求的URL

将服务器上的本地系统目录映射成为一个虚拟web目录的过程,就叫做web发布,外界可以通过使用http协议的浏览器来访问此资源

使用tomcat/conf/server.xml文件 来配置虚拟的web目录

1.server.xml中直接配置路径

<Hostname="localhost" appBase="webapps"

       unpackWARs="true"autoDeploy="true"

       xmlValidation="false"xmlNamespaceAware="false">        

<Contextpath= "/exam"

docBase="E:/J2EE/MyEclipseWorkSpace/Examination/WebRoot">

</Context>

</Host>

<Host>元素的appbase属性 表示存放tomcat发布的项目的文件夹

<Context>元素的path属性 表示tomcat项目的名称,也就是虚拟子目录的名称

                        docBase属性 表示服务器的本地文件系统目录中的对应项目文件路径

<Host>元素代表一个站点,而<Context>元素代表了一个虚拟子目录

HostContext的首字母必须大写,否则tomcat不认

 

2.server.xml文件中 配置war包的路径

也可以将<Context>元素的docBase属性的值打成一个war包,然后将docBase的属性设置为war包的路径

将一个文件夹下的所有文件 封装在war包内的命令:

jar –cvf 包的名字.war .  包的名字后有点,末尾war后也空格加点 表示当前目录下的所有文件都打包进入war文件中

也可以将当前目录下的某个指定文件打包成war文件 例如:

jar –cvftest.war test    test文件打包成test.war,但是如果指定文件夹来打包,打包生成的war文件中也会包含这个文件夹本身,如果不想包含它,可以这样写:

jar –cvftest.war –C test .   这里-C的意思是将test文件夹设置为当前的打包目录 –C要大写

 

<Context path= "/exam"

docBase="E:/J2EE/MyEclipseWorkSpace/Examination/WebRoot/exam.war">

</Context>

 

3.将项目文件夹放入tomcat/webapps中,且项目文件夹内包含有WEB-INF文件夹,则默认为Tomcat的虚拟web目录,WEB-INF中必须有一个web.xml文件

 

4.war文件放入tomcat/webapps,war文件默认被读取为虚拟web目录

Tomcatweb.xml配置文件

部署描述符文件--------------Web应用程序/WEB-INF/web.xml

默认部署描述符-------------- Tomcat/conf/web.xml

配置目录的默认网页------tomcat/conf/web.xml件中

<web-app>  web.xml的一级标记

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>

Web应用程序的web.xml文件中中设置目录默认网页后,tomcat总体的默认部署描述符Tomcat/conf/web.xml中的目录默认网页的功能将会失效

Web应用程序/WEB-INF/web.xml Tomcat/conf/web.xml 不是增加,而是覆盖

Tomcat的虚拟主机及实现原理

在一台计算机上创建多个web站点,为每个web站点设置不同的主目录和虚拟子目录,每个web站点都可以作为一个独立的网站供用户使用

Web虚拟目录

Http://www.12345.com/test/test.html

请求信息:

GET /test/test.htmlHTTP/1.1

Host:www.12345.com

 

GET表示请求方式,/test/test.html表示web虚拟目录文件的路径,HTTP/1.1表示使用1.1版本的http协议

Host:www.12345.com  表示主机名

tomcat/conf/server.xml文件 使用<Host>元素为每个网站配置不同的虚拟主机

<Hostname="www.123.com" appBase="C:/test23"

       unpackWARs="true"autoDeploy="true"

       xmlValidation="false"xmlNamespaceAware="false">        

</Host>

<Hostname="www.456.com" appBase="C:/test456"

       unpackWARs="true"autoDeploy="true"

       xmlValidation="false"xmlNamespaceAware="false">        

</Host>

可以设置system32/drivers/etc/hosts文件,来关联IP地址与主机名

127.0.0.1                                        Localhost 

127.0.0.1 www.123.com 

127.0.0.1 www.456.com 

开启tomcat服务 访问网站时,就可以使用主机名代替IP地址了

虚拟主机的端口号

Web服务器上的每一个监听端口号,都要使用一个<Connector>元素来配置

Tomcat/conf/server.xml的元素上下级

 

<Service name=”……”>

       <Connectorport=” …………/>

       <Enginename=” ……”>

              <Hostname=” ……”>

                     <Context……>  </Context>

              </Host>

       </Engine>

</Service>

 

<Servicename="Second-Service">

       <Connectorport="8007" maxHttpHeaderSize="8192"

               maxThreads="150"minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false"redirectPort="8443" acceptCount="100"

              connectionTimeout="20000"disableUploadTimeout="true" />

       <Enginename="Catalina" defaultHost="localhost">

              <Hostname="www.123.com" appBase="C:/test123"

               unpackWARs="true"autoDeploy="true"

                xmlValidation="false"xmlNamespaceAware="false">

                     <Contextpath="/test" docBase="C:/test123"></Context>

              </Host>

       </Engine>

</Service>

telnetlocalhost 8008访问

GET /test/test.html HTTP/1.1

Host:www.123.com

基于IP地址的虚拟主机

HTTP 1.0不支持host头字段,在保证所有站点统一使用端口号80的情况下,早期只能采用不同的IP地址来建立虚拟主机,但缺陷是需要为每个站点分配一个独立的ip地址,网络中的ip地址资源稀缺

HTTP 1.1可以使用不同的主机名来建立多个web站点

TOMCAT与专用WEB服务器的集成

集成的考虑因素:

1.                  集群,集群系统的概念,负载均衡的概念

2.                  集群/安全

3.                  安全

4.                  附加功能

5.                  特殊功能

6.                  速度

7.                  socket处理/系统稳定性

集成技术的选择

Mod_webapp  已经过时

Mod_jserv  不再被支持和使用

JK是目前的首先技术,与tomcat使用AJP技术进行通信

JK2目前也不被支持

Mod_proxy  JK的配置更加简单,但不能实现有会话状态的负载均衡

Mod_proxy_ajp  mod_proxy上改写的一个连接器,随着apache 2.2版本的服务器程序一起发布的,支持负载均衡,但只能在apache服务器上使用

 

不同的web服务器下的插件形式是不同的,tomcat开发小组为不同的web服务器提供了相应的JK插件

如果在为JK插件预先配置好的URL映射信息中,所有“/*.jsp”形式的URL都由tomcat服务器来处理,那么,当用户请求访问“/index.jsp”时,web服务器将调用JK插件来处理,JK插件把这个请求转发给tomcat服务器来处理,tomcat服务器最后将响应结果经JK插件传给web服务器

不同版本的tomcat与其他web服务器的各个版本集成时的JK插件也可能不同

Tomcat体系结构

Server服务器上可以有很多Service服务,在每个Service下可以有多个Connector连接器,Service下的每个Connector都共用了一个Engine引擎

TomcatJK插件使用的是AJP协议

JK插件的连接器配置  isapi_redirect-1.2.28.dllIIS  mod_jk.soApache

tomcatserver.xml文件中,要使用<Connector>元素配置与JK插件进行通信的连接器

 

<Connectorport="8009"

               enableLookups="false"redirectPort="8443" protocol="AJP/1.3" />

port端口号8009  enanlelookups是否检查  redirectport重定向端口8443 协议AJP/1.3

 

1.Web服务器(IISApache)中正确安装JK插件。

2.JK插件需要知道把请求转发给哪个Tomcat服务器上的哪个连接器,也就是需要知道该连接器的通讯协议和地址。

3.JK插件需要知道它负责处理的url,以便通知Web服务器把这些URL转交给它处理;另外,一个JK插件可以向多个Tomcat服务器转发请求,它需要知道哪些URL应转发给哪个Tomcat服务器。

4.JK本身的一些配置信息,例如,记录日志的文件路径,记录日志的级别等信息,如果上面的23两个问题都在各自的一个属性文件中进行配置,那么,还需要告诉这两个属性文件的位置路径。

 

专业web服务器接收到浏览器的访问请求后,将符合某种条件的请求交给JK插件,JK插件在根据配置文件的设置信息,将请求交给相应的tomcat服务器处理

JK插件包含几个配置文件

workers.properties  设置与JK插件进行通信的Tomcat上的连接器的通信协议和地址

uriworkermap.properties  用于设置JK插件负责处理的URL和具体处理各个URLTomcat服务器的名称,使用的服务器的名称就是在workers.properties中配置的

服务器的名称就代表了服务器的主机名,端口和监听的协议类型

isapi_redirect-1.2.28.properties  设置JK插件本身的一些配置信息以及说明workers.properties文件 uriworkermap.properties文件的存储路径

isapi_redirect-1.2.28.log  JK插件的日志文件

属性文件和日志文件的名称必须与JK插件dll文件的名称一致

除了属性文件,也可以使用注册表文件

Workers.properties示例

Worker.list=worker1,worker2  定义两个名称,可以想象成对象,用来指定JK插件所要链接的每个tomcat程序的名字

Worker.worker1.type=ajp13  监听的协议类型

Worker.worker1.host=localhost  主机名或IP地址

Worker.worker1.port=8009  端口号

Worker.worker2.type=ajp13

Worker.worker2.host=192.168.0.3

Worker.worker2.port=8009

也可以将某个服务程序名字的type属性设置为lb,含义是Loadbalance的缩写,负载均衡

例如:

Worker.list=wlb----------定义一个tomcat服务程序的名称,用来实现一个负载均衡系统,但不包括实现负载均衡的tomcat服务程序的名称

Worker.ajp13w.type=ajp13--------设置ajp13w这个tomcat服务程序的监听协议类型,主机名,端口号

Worker.ajp13w.host=localhost

Worker.ajp13w.port=8009

Worker.wlb.type=lb

---------表示为一个负载均衡系统的tomcat服务程序,是一个虚拟的tomcat服务器,他没有hostport属性,而需要设置下边的balance_workers属性

Worker.wlb.balance_workers=ajp13w

--------------balance_workers属性列出了组成负载均衡系统的所有tomcat服务程序的名称,去管理组成了负载均衡系统的tomcat服务程序,如果一个tomcat服务程序加入到了一个负载均衡系统当中,那么tomcat服务程序的名称就不能出现在Worker.list=wlb这句代码的定义当中,Worker.list只能包含非组成负载均衡系统的tomcat服务程序的名称,

 

uriworkermap.properties示例

/*.jsp=worker1

/admin/*=worker1

/manager/*=worker1

/jsp-examples/*=worker1

/servlets-examples/*=worker1

左边的内容是需要转发给tomcat服务器去处理的URL,可以使用*号通配符来匹配一组URL

右边的内容是处理这一组URLTomcat的服务程序的名字

isapi_redirect-1.2.28.properties示例

#JK插件在IIS服务器中虚拟路径,应于IIS中创建的虚拟目录名称保持一致

Extension_uri=/JK/isapi_redirect-1.2.28.dll

#JK插件生成的日志文件的完整路径

log_file=E:/JK/log/isapi_redirect-1.2.28.log

#日志级别,其有效值为debug,info,errortrace

log_level=debug

#workers.properties文件的完整路径

worker_file=E:/JK/conf/workers.properties

#uriworkermap.properties文件的完整路径

worker_mount_file=E:/JK/conf/uriworkermap.properties

isapi_redirect-1.2.28.reg示例

Windows Registry EditorVersion 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/ApacheSoftwareFoundation/Jakarta Isapi Redirector/1.0]

"extension_uri"="JK/isapi_redirect-1.2.28.dll"

"log_file"="E://JK//log//isapi_redirect-1.2.28.log"

"log_level"="info"

"worker_file"="E://JK//conf//workers.properties"

"worker_mount_file"="E://JK//conf//uriworkermap.properties"

TomcatIIS服务器集成

IISInternetInformation Server的缩写,它是微软公司主推的服务器, IISWindowNT Server完全集成在一起,因而用户能够利用Windows NT ServerNTFSNTFile SystemNT的文件系统)内置的安全特性,建立强大,灵活而安全的InternetIntranet站点。IIS支持HTTPHypertext Transfer Protocol,超文本传输协议),FTPFele Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGIISAPIIIS可以得到高度的扩展。

 

IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者 编译应用程序,IIS完全支持VBScriptJScript开发软件以及Java,它也支持CGIWinCGI,以及ISAPI扩展和过滤器。

 

IIS的设计目的是建立一套集成的服务器服务,用以支持HTTPFTPSMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。

 

1. 先安装IIS服务器

在控制面板-------添加或删除程序--------添加/删除Windows组件--------Internet信息服务IIS

2. JK插件所在的目录设置为某个站点下的一个具有执行许可权限的虚拟目录

IIS的本地计算机的网站中把JK插件安装为一个ISAPI筛选器

然后右键单击本地计算机,选择所有任务--------重新启动IIS

3. 编写workers.properties文件--------设置链接tomcat的信息

          uriworkermap.properties文件--------设置将哪些形式的URL地址交给JK插件,在转交给tomcat处理

4. 设置JK插件的属性  例如记录log时候的路径等,有两种方法

在一个属性文件中设置--------这个文件必须与JK插件isapi_redirect-1.2.28.dll在同一目录中,且文件名也要相同,后缀名为properties,   isapi_redirect-1.2.28.properties

   Windows注册表中设置

5. 测试配置是否成功  配置完所有文件后,再重新启动一次IIS,然后用IIS的端口号来访问tomcat下的jsp文件测试

TomcatApache服务器集成

1.先安装Apache服务器

网址:http://httpd.apache.org/download.cgi

2. 将对应于Apache服务器的JK插件 mod_jk-apache-1.3.27.so 改名为mod_jk.so后复制到

<APACHE_HOME>/modules目录中

3. 设置配置信息,在Apache<APACHE_HOME>/conf/httpd.conf配置文件中直接设置

#加载JK插件模块

LoadModule jk_modulemodules/mod_jk.so

#配置Tomcat服务器的信息

JKWorkerProperty worker.list=worker1

JKWorikerPropertyworker.worker1.port=8009

JKWorikerPropertyworker.worker1.host=localhost

JKWorikerPropertyworker.worker1.type=ajp13

#指定生成JK插件的日志文件的目录

JKLogFilelogs/mod_jk.log

#指定JK插件的日志文件的级别

JKLogLevel debug

#设置JK插件的路径映射信息

JKMount /*.jsp=worker1

JKMount/myweb/*=worker1

可以把配置文件按照tomcat整合IIS的形式 分为两个文件来配置,在Apache<APACHE_HOME>/conf文件夹中,配置workers.propertiesuriworkermap.properties

4. 测试配置是否成功

Tomcat与专业服务器整合的现实问题

随着各种服务器版本的不断升级,JK插件也在不断的更新和升级

在六个月的时间内,人们可以公布,开发,运用,批评以及放弃一种技术

一本好书的编写到出版的过程需要相当长的一段时间,也许等到读者看到书的内容时,书中讲解的专用技术已经被新的技术所取代

只需要知道有这样一种技术,了解一些粗略的术语和学习方向后,根据具体的应用需求,去网上查找相关的最新资料

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 做事不专心老走神怎么办 小朋友做作业老发呆走神怎么办? 小朋友总是上课走神发呆怎么办 21岁精神心急了怎么办 一直有人阻止我做事怎么办 安装了渲染su找不到怎么办 su室内渲染很暗怎么办 su未响应未保存怎么办 电脑工作栏没了怎么办 ps工作栏没了怎么办 草图大师文件太大打不开怎么办 su模型保存后不见了怎么办 墨汁溅到衣服上怎么办 黑裤子溅上白色颜料怎么办 解码器上墙后图像放大了怎么办 宝宝把墙画了怎么办 孩子画画勾线笔过敏怎么办 微信语音撤回了怎么办? 小天才电话手表充不上电怎么办 儿童电话手表定位不准怎么办 2岁宝宝不让刷牙怎么办 宝宝两岁蛀牙多还不刷牙怎么办 宝宝有蛀牙不肯刷牙怎么办 宝宝牙疼怎么办4岁 3岁宝宝龋齿牙疼怎么办 2岁宝宝不肯刷牙怎么办 3岁宝宝不爱刷牙怎么办 2岁宝宝不刷牙怎么办 二岁宝宝牙不好怎么办 小孩一刷牙就吐怎么办 孩子一刷牙就吐怎么办 两岁宝宝闹人怎么办 3岁宝宝不愿意刷牙怎么办 孩子牙没掉长出新牙来了怎么办 大孩子不洗澡怎么办啊 2岁宝宝不爱洗澡怎么办 手指画颜料变干怎么办 刮画纸画错了怎么办 电脑绘的图不能扩大怎么办 华腾同步课堂忘记密码怎么办 被缝纫机针扎了怎么办