|
1.介绍
下载地址:
http://tomcat.apache.org/
http://jakarta.apache.org/site/downloads/index.html
2.安装
2.1 环境配置
JAVA_HOME C:\Program Files\Java\jdk1.6.0_05
JAVA_BIN C:\Program Files\Java\jdk1.6.0_05\bin
TOMCAT_HOME D:\programming\java\apache-tomcat-6.0.18
CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
JAVA_OPTS -Xms64m -Xmx512m
PATH后加 ;%JAVA_HOME%\bin;%TOMCAT_HOME%\bin
ANT_HOME= D:\programming\java\apache-ant-1.7.1
PATH=%PATH%;%ANT_HOME%\bin
2.2 测试java环境
在命令行中输入:
java –version查看版本
javac –help查看path路径是否设置完
2.3 源代码安装Tomcat(不推荐)
下载ANT,地址http://ant.apache.org/
下载tomcat源码,地址http://tomcat.apache.org/ apache-tomcat-6.0.18-src.zip,解压后将里面的build.properties.default改成build.properties
2.4 二进制安装
直接解压到某一文件夹下即可,但要更改TOMCAT_HOME变量
直接启动startup.bat即可
2.5 配置
2.5.1 安装名为Tomcat6的Tomcat服务:service install
删除tomcat服务service remove
安装名为MyTomcat的服务:service install MyTomcat
删除名为MyTomcat的服务:service remove MyTomcat
2.5.2 元素
path代表网络访问的上下文路径,reloadable表示可以在运行时在classes与lib文件夹下自动加载类包,在开发阶段一般为true有助于调试类源文件,但该参数所产生的操作会增加服务器的运行负荷,所以在部署阶段一般都设置成false,docBase表示应用程序的路径,workDir表示缓存文件的放置地点
2.6 测试运行
新建一页面hello.jsp
hello
3 tomcat的安全管理
提供Realm支持,即将不同的应用赋给不同的用户,没有权限的用户则不能访问这个应用。Tomcat提供三种Realm:
JDBCRealm:用户信息存在数据库里,通过JDBC获得用户信息。
JNDIRealm:用户信息存在LDAP的服务器里,通过JNDI获取用户信息。
MemoryRealm:用户信息存在一个xml里,通过xml进行验证。
4 tomcat与apache的集成
tomcat处理静态HTML不如apache,所以用apache处理静态HTML,用tomcat处理JSP、Servlet。
5 Tomcat工作原理-Servlet容器
Servlet容器的作用就是负责处理客户请求。客户请求到来时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。
-ServletRequest ――>
客户端
-ServletResponse――>
|
独立的Servlet容器-基于java的web服务器
进程内的Servlet容器-作为进程内的Servlet容器,Servlet容器作为web服务器的插件和java容器(JVM)的实现。
进程外的Servlet容器-作为进程外的Servlet容器,Servlet容器运行于Web服务器之外的地址空间,并且作为Web服务器的插件和java容器(JVM)的实现。插件和JVM使用IPC机制进行通信。
6 Tomcat组织结构-Server.xml
Tomcat是一个基于组件的服务器,最外层的组件是Catalina Servlet容器,其他的组件按照一定的格式配置在这个顶层容器中。其配置在conf/server.xml文件中:
一个xml文件只能有一个Server,代表一个服务器
有一个Engine组件和多个Connector
通信接口,通过此接口接收客户的请求,然后发送给其他组件,最后把服务器的响应传递给客户
........
处理用户请求并生成响应,可以有多个Host
虚拟主机,可以有多个Context
web应用
| 7 Tomcat web应用
一个java web应用包含Servlet、JSP页面、java类、静态资源(HTML文档、图片等)、描述Web应用的描述文件。
图 多个Web应用时Tomcat服务的过程
如果不加任何修改,在一台服务器上同时运行两个Tomcat服务显然会发生端口冲突。假设现在已经按照正常的方式安装配置好了第一个Tomcat,第二个如何设置呢?以下是使用Tomcat6.0.16解压版本所做的实验。
解决办法:
1.解压Tomcat到一个新的目录,比如d:\TomcatServer2;
2.新建一个环境变量CATALINA_HOME2,路径为d:\TomcatServer2;
3.编辑Tomcat/bin/startup.bat和catalina.bat,把CATALINA_HOME全部替换成CATALINA_HOME2;
4.编辑Tomcat/conf/server.xml,将端口号8开头都改为9开头(其他端口只要不冲突即可),并修改默认编码为utf-8(以支持中文链接)
示例:
=====================
5.运行测试。
8 war文件格式
ROOT
|――/ html文件、jsp文件、图片、样式表等
|____WEB-INF该目录下的所有文件都是不可访问的
|――classes
|――lib
|____web.xml
为了部署方便,src存放java源代码,js存放脚本文件,images存放图片文件,css存放样式表文件,web存放JSP和HTML文件
WEB-INF下的各种资源文件分开存放,properties存放属性文件等。
9 web.xml
9.1 web应用图标
/images/app small.gif
/images/app large.gif
9.2 web应用名称
Tomcat Manager Application
9.3 web应用描述
A scriptable management web application for the Tomcat Web Server;
Manager lets you view, load/unload/etc particular web applications.
分布式属性:Tomcat集群参数
9.4 指定欢迎文件页
index.html
index.htm
index.jsp
9.5 网上摘录部分
web.xml首先是肯定要包含它的schema.
其它的元素都放在之中。
是对站台的描述
定义站台的名称
是指定该站台是否可分布式处理
用来设定web站台的环境参数,它包含两个子元素:
用来指定参数的名称
用来设定参数值
比如:
my_param
hello
在此设定的参数,可以在servlet中用 getServletContext().getInitParameter("my_param") 来取得
是用来声明filter的相关设定,它包含以下子元素:
这当然就是指定filter的名字
这是用来定义filter的类的名称
用来定义参数,它有两个子元素:
用来指定参数的名称
用来设定参数值
比如:
setCharacterEncoding
com.myTest.setCharacterEncodingFilter
encoding
GB2312
与同时使用的是 用来定义filter所对应的URL,它有两个子元素:
指定filter的名字
指定filter所对应的URL
比如:
setCharacterEncoding
/*
用来设定Listener接口,它的主要子元素为
定义Listener的类名称
比如:
com.myTest.ContextListener
用来声明一个servlet的数据,主要有以下子元素:
指定servlet的名称
指定servlet的类名称
指定web站台中的某个JSP网页的完整路径
用来定义参数,和前面的差不多
同样,与一起使用的是 用来定义servlet所对应的URL,包含两个子元素:
指定servlet的名称
指定servlet所对应的URL
比如:
ShoppingServlet
com.myTest.ShoppingServlet
ShoppingServlet
/shop/ShoppingServlet
用来定义web站台中的session参数,包含一个子元素:
用来定义这个web站台所有session的有效期限,单位为 分钟
定义某一个扩展名和某一个MIME Type做对映,包含两个子元素:
扩展名的名称
MIME格式
比如:
doc
application/vnd.ms-word
xls
application/vnd.ms-excel
用来定义首页的列单,包含一个子元素:
指定首页的文件名称
比如:
index.jsp
index.html
用来处理错误代码或异常的页面,有三个子元素:
指定错误代码
指定一个JAVA异常类型
指定在web站台内的相关资源路径
比如:
404
/error404.jsp
java.lang.Exception
/exception.jsp
用来设定JSP网页所用到的Tag Library路径,有两个子元素:
定义TLD文件的URI,在JSP网页中用taglib指令便可取得该URI的 TLD文件
指定TLD文件相对于web站台的存放位置
比如:
myTaglib
/WEB-INF/tlds/MyTaglib.tld
此时JSP页面可通过下面的形式使用标签库
定义利用JNDI取得站台可利用的资源,有五个子元素:
资源说明
资源名称
资源种类
资源经由Application或Container来许可
资源是否可以共享,有Shareable和Unshareable两个 值,默认为Shareable
比如,配置数据库连接池就可在此配置:
JNDI JDBC DataSource of shop
jdbc/sample_db
javax.sql.DataSource
Container
10 中文编码
response.setCharacterEncoding("gb2312")
str=new String(username.getBytes("ISO-8859-1"),"gb2312")
|
|
|