一、Tomcat背景
自从JSP发布之后Q推Z各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet, q样Tomcatp生了。Tomcat是jakarta目中的一个重要的子项目,其被JavaWorld杂志的编辑选ؓ2001q度最具创新的java产品Q同时它又是sun公司官方推荐的servlet和jsp容器Q因此其来多的受到Y件公司和开发h员的喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。其ơ,Tomcat是完全免费的软gQQ何h都可以从互联|上自由C载。Tomcat与Apache的组合相当完?br />
二、Tomcat目录
tomcat
|---bin TomcatQ存攑动和关闭tomcat脚本Q?br />
|---conf TomcatQ存放不同的配置文gQserver.xml和web.xmlQ;
|---docQ存放Tomcat文档Q?br />|---lib/japser/commonQ存放Tomcatq行需要的库文ӞJARSQ;
|---logsQ存放Tomcat执行时的LOG文gQ?br />|---srcQ存放Tomcat的源代码Q?br />|---webappsQTomcat的主要Web发布目录Q包括应用程序示例)Q?br />|---workQ存放jsp~译后生的class文gQ?br />
三、Tomcatcd?br />
Bootstrap($JAVA_HOME/jre/lib/ext/*.jar)
System($CLASSPATH/*.class和指定的jar)
Common($CATALINA_HOME/common 下的classes,lib,endores三个子目?
Catalina ($CATALINA_HOME/server/下的classes和lib目录仅对Tomcat可见)
&Shared($CATALINA_HOME/shared/下的classes和lib目录以及$CATALINA_HOME/lib目录)仅对Web应用E序可见,对Tomcat不可见WebApp($WEBAPP/Web-INF/*仅对该WEB应用可见classes/*.class lib/*.jar)
加蝲cd资源的顺序ؓQ?br />1?Web-INF/classes
2?Web-INF/lib/*.jar
3、Bootstrap
4、System
5?CATALINA_HOME/common/classes
6?CATALINA_HOME/common/endores/*.jar
7?CATALINA_HOME/common/lib/*.jar
8?CATALINA_HOME/shared/classes
9?CATALINA_HOME/shared/lib/*.jar
四、server.xml配置介:
下面讲述q个文g中的基本配置信息Q更具体的配|信息请参考tomcat的文档:
server:
1、port 指定一个端口,q个端口负责监听关闭tomcat的请?br /> 2、shutdown 指定向端口发送的命o字符?br /> service:
1、name 指定service的名?br /> Connector (表示客户端和service之间的连?Q?br /> 1、port 指定服务器端要创建的端口Pq在q个断口监听来自客户端的h
2、minProcessors 服务器启动时创徏的处理请求的U程?br /> 3、maxProcessors 最大可以创建的处理h的线E数
4、enableLookups 如果为trueQ则可以通过调用request.getRemoteHost()q行DNS?br />
询来得到q程客户端的实际L名,若ؓfalse则不q行DNS查询Q而是q回其ip
地址
5、redirectPort 指定服务器正在处理httph时收C一个SSL传输h后重定向?br />
端口?br /> 6、acceptCount 指定当所有可以用的处理h的线E数都被使用Ӟ可以攑ֈ处理
队列中的h敎ͼ过q个数的h不予处?br /> 7、connectionTimeout 指定时的时间数(以毫Uؓ单位)
Engine (表示指定service中的h处理机,接收和处理来自Connector的请?Q?br /> 1、defaultHost 指定~省的处理请求的L名,它至与其中的一个host元素的name
属性值是一L
Context (表示一个web应用E序)Q?br /> 1、docBase 应用E序的\径或者是WAR文g存放的\?br /> 2、path 表示此web应用E序的url的前~Q这栯求的url?br />
http://localhost:8080/path/****
3、reloadable q个属性非帔R要,如果为trueQ则tomcat会自动检应用程序的
/WEB-INF/lib ?WEB-INF/classes目录的变化,自动装蝲新的应用E序Q我们可
以在不重起tomcat的情况下改变应用E序
host (表示一个虚拟主?Q?br /> 1、name 指定L?br /> 2、appBase 应用E序基本目录Q即存放应用E序的目?br /> 3、unpackWARs 如果为trueQ则tomcat会自动将WAR文g解压Q否则不解压Q直?br />
从WAR文g中运行应用程?br /> Logger (表示日志Q调试和错误信息)Q?br /> 1、className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口
2、prefix 指定log文g的前~
3、suffix 指定log文g的后~
4、timestamp 如果为trueQ则log文g名中要加入时_如下
?localhost_log.2001-10-04.txt
Realm (表示存放用户名,密码及role的数据库)Q?br /> 1、className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一?Q?br /> 1、className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve
cd以记录应用程序的讉K信息
directoryQ指定log文g存放的位|)Q?br /> 1、pattern 有两个|common方式记录q程L名或ip地址Q用户名Q日期,W一?br />
h的字W串QHTTP响应代码Q发送的字节数。combined方式比common方式?br />
录的值更?br />
五、web.xml配置介:
?、默?Ƣ迎)文g的设|?br />
在tomcat4\conf\web.xml中,<welcome-file-list>与IIS中的默认文g意思相同?br />
<welcome-file-list>
?lt;welcome-file>index.html</welcome-file>
?lt;welcome-file>index.htm</welcome-file>
?lt;welcome-file>index.jsp</welcome-file>
</welcome-file-list>
?、报错文件的讄
<error-page>
?lt;error-code>404</error-code>
?lt;location>/notFileFound.jsp</location>
</error-page>
<error-page>
?lt;exception-type>java.lang.NullPointerException</exception-type>
?lt;location>/null.jsp</location>
</error-page>
如果某文件资源没有找刎ͼ服务器要?04错误Q按上述配置则会调用\webapps\ROOT\notFileFound.jsp?br />
如果执行的某个JSP文g产生NullPointException Q则会调用\webapps\ROOT\null.jsp
?、会话超时的讄
讄session 的过期时_单位是分钟;当设|ؓ-1的时候是不过期的讄Q但是要注意服务器的效率?br />
<session-config>
?lt;session-timeout>30</session-timeout>
</session-config>
?、过滤器的设|?br />
<filter>
?lt;filter-name>FilterSource</filter-name>
?lt;filter-class>project4. FilterSource </filter-class>
</filter>
<filter-mapping>
?lt;filter-name>FilterSource</filter-name>
?lt;url-pattern>/WwwServlet</url-pattern>
?<url-pattern>/haha/*</url-pattern>)
</filter-mapping>
qoQ?br />
1) w䆾验证的过滤Authentication Filters
2) 日志和审核的qoLogging and Auditing Filters
3) 囄转化的过滤Image conversion Filters
4) 数据压羃的过滤Data compression Filters
5) 加密qoEncryption Filters
6) Tokenizing Filters
7) 资源讉K事g触发的过滤Filters that trigger resource access events XSL/T qoXSL/T filters
9) 内容cd的过滤Mime-type chain Filter 注意监听器的序Q如Q先安全qoQ然后资源,
然后内容cd{,q个序可以自己定?br />
六、管?br /> 1、用户配|?br /> 在进行具体Tomcat理之前Q先ltomcatd一个用P使这个用h权限来进行管理?br /> 打开conf目录下的tomcat-users.xml文gQ在相应的位|添加下面一行:
<user name="user" password="user" roles="standard,manager"/>
然后重vtomcatQ在览器中输入http://localhost:8080/manager/Q会弹出对话框,输入上面的用?br />
名和密码卛_?br />
2、应用程序列?br /> 在浏览器中输?a href="http://localhost:8080/manager/list" target="_blank">http://localhost:8080/manager/listQ浏览器会昄如下的信息:
OK - Listed applications for virtual host localhost
/ex:running:1
/examples:running:1
/webdav:running:0
/tomcat-docs:running:0
/manager:running:0
/:running:0
上面昄的信息分别ؓQ应用程序的路径、当前状态、连接这个程序的session?br />
3、重新装载应用程?br /> 在浏览器中输入?a href="http://localhost:8080/manager/reload?path=/examples" target="_blank">http://localhost:8080/manager/reload?path=/examplesQ浏览器昄如下Q?br /> OK - Reloaded application at context path /examples
q表Cexample应用E序装蝲成功Q如果我们将server.xml的Context元素的reloadable属性设为trueQ则没必要利用这U方式重新装载应用程序,因ؓtomcat会自动装载?br />
4、显Csession信息
在浏览器中输?a href="http://localhost:8080/manager/sessions?path=/examples" target="_blank">http://localhost:8080/manager/sessions?path=/examplesQ浏览器昄如下Q?br /> OK - Session information for application at context path /examples Default maximum session inactive
interval 30 minutes
5、启动和关闭应用E序
在浏览器中输?a href="http://localhost:8080/manager/start?path=/examples" target="_blank">http://localhost:8080/manager/start?path=/examples?br />
http://localhost:8080/manager/stop?path=/examples分别启动和关闭examples应用E序?
TagsQ?a >tomcat