一章:
1.tomcat结构(server.xml描述)
<Server> (1)顶层元素(Catalina Servlet容器,代表了整个服务器)
<Service>
<Connector /> (2)<!--连接器代表了介于客户和服务之间的通信接口,将客户的请求转发给服务器以及将服务器的响应传递给客户-->
<Engine>
<Host>
<Context>
</Context> <!--一个web应用有唯一的<Context>-->
</Host> <!--<Host>定义了一个虚拟主机,它包含了一个或多个web应用-->
</Engine> <!--Engine是唯一的,它处理同一个<Service>中的所有<Connect>接受的客户请求-->
</Service>
</Server>
(3)Engine(为特定的service组件处理客户请求),Host(为特定的虚拟主机处理客户请求),Context(为特定的Web应用处理客户请求)是三个容器元素,代表处理客户请求并生成响应的组件。
(4)嵌套元素
可以加入到容器元素中,如:<Logger>,<value>等
2.tomcat工作模式
(1)[屏蔽]的servlet容器
(2)进程内的servlet容器 servlet容器分为web服务器插件和java容器两部分(插件通过JNI本地调用接口可以调用其他语言写的程序向java容器传递信息)
(3)进程外的servlet容器 servlet容器分为web服务器插件和java容器两部分(插件通过IPC通信机制(进程见的通信机制)向java容器传递信息)
二章:
1.<Context>属性
**path 指定访问该web应用的URL入口
**docBase web应用的文件路径
**reloadable 如果为true,服务器会监视class文件的改动,如果改动则服务器自动重新加载web应用。一般在调试阶段设为true,而在发布阶段设为false可以减少服务器的负载
2.<servlet>元素的属性
**<servlet-name> 定义servlet的名字
**<servlet-class> 指定实现这个servlet 的类
**<init-param> 定义servlet的初始化参数,可以有多个<init-param>属性
**<load-on-startup> 指定web应用启动时,装载servlet的次序。先访问数值小的
3.部署JSP Tag Library
**编写用语处理hello标签的类HelloTag.java,将class文件放在/WEB-INF/classes下
**创建Tag Library的描述文件:mytaglib.tld
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>mytaglib</shortname>
<uri> /mytaglib </uri>
<tag>
<name>hello</name>
<tagclass>package.class</tagclass>
<bodycontent>empty</bodycontent>
<info>Just Says Hello</info>
</tag>
</taglib>
**在web.xml文件中加入<taglib>元素
<taglib>
<taglib-uri>/mytaglib<taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld<taglib-location>
**在jsp文件中假如hello标签
<%@ taglib uri="/mytaglib" prefix="mm"%>
调用:<mm:hello/> 显示:hello
</taglib>
4.创建和发布war文件
**jar cvf helloapp.war *.*
**将war文件拷贝到webapps文件即可
5.配置虚拟主机
**在server.xml中添加新的<host>
<host>属性
*name 主机名
*debug 日志级别
*appBase
*unpackWARs
*autoDeploy
*alias 别名
*deployOnStartup
**把整个web文件(如war文件,hello.war)拷贝到appBase指定的目录 下
**在DSN服务器中注册虚拟主机名和别名(
www.yang.com,yang.com,yang)
**重启服务器,然后浏览:
http://www.yang.com/hello/index.jsp或用别名访问也可以:
http://yang.com/hello/index.jsp