Tomcat学习笔记

1       Tomcat的简介

1.1         TomcatServlet容器,Tomcat结构

知识点:

1.        Tomcat服务器是一种Servlet/JSP容器。

2.        Tomcat服务器由一系列可以配置的组件构成,在XML文件里,代表组件的元素可以分为四类:顶层类元素、连接类元素、容器类元素、嵌套类元素。每种元素的结构和功能需要清楚。

3.        有三种容器类元素:EngineHostContext,它们的面向的对象不同;

4.        最基本的Tomcat元素:ServerServiceConnectorEngineHostContext,如图所示各个元素的功能和关系。

 

 

1.2         Java Web应用简介

 

1.        Java Web服务是由一组ServletHTML页面、类以及其它可以被绑定的资源构成。它可以在 各种供应商提供的实现Servlet规范的Web应用容器中运行。

2.        Java Web应用的重要特征就是它与Context的关系,每个Web应用拥有唯一的Context,就是说每个Context容器只对应一个Web应用。

1.3         Tomcat工作模式

1.        Tomcat作为Servlet容器有几种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。

2.        JNIJAVA本地调用接口(Java Native Interface),其作用是什么。

3.        IPC是两个进程之间进行通讯的一种机制。

1.4         Tomcat安装及部署及运行脚本

1.         更改端口号的方法

2       创建和发布Web应用

2.1         Tomcat的目录结构

1.        Tomcat的目录结构见下表,它是研究Tomcat的基础

 

 

   

   

/bin

存放windowsLinux平台上启动和关闭Tomcat的脚本文件

/conf

存放Tomcat服务器的各种配置文件,其中最重要的是server.xml

/server

包含三个子目录:classeslibwebapps

/server/lib

存放Tomcat服务器所需的各种JAR文件

/server/webapps

存放Tomcat自带的两个WEB应用:admin应用和 manager应用

/common/lib

存放Tomcat服务器以及所有web应用都可以访问的jar文件

/shared/lib

存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)

/logs

存放Tomcat的日志文件

/webapps

当发布Web应用时,默认情况下把Web应用文件放于此目录

/work

Tomcat把又JSP生成的Servlet放于此目录下

假设在<CATALINA_HOME>/webapps下有helloappweb应用,如下

/helloapp

Web应用的根目录,所有的jsp文件和html文件都在此目录下

/helloapp/WEB_INF

存放web发布时的描述文件web.xml

/helloapp/WEB_INF/class

存放各种class文件,Servlet文件也存放于此目录下。

/helloapp/WEB_INF/lib

存放各钟Web应用所需要的jar文件。比如可以存放JDBC驱动程序的JAR文件

Host元素的属性

name

指定虚拟主机名字

debug

指定日志级别

appBase

指定虚拟主机目录可以是绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录。如果此项没有设定则默认的是<CATALINA_HOME>/webapps 

unpackWARs

如果此项设置为true,表示将把Web应用的WAR文件先展开为开放目录结构后再运行。如果为false则直接运行WAR文件

autoDeploy

如果此项设置为true,表示当Tomcat服务器启动时会自动发布appBase目录下所有的Web应用将把Web应用。如有新的Web加入进来,则会自动发布这个Web应用。

alias

指定虚拟主机的别名,可以指定多个别名。

deployOnStarup

如果此项设为true,则表示Tomcat服务器启动时会自动发布appBase目录下的所有Web应用。如果Web应用在server.xml中没有相应的<context>元素,则将采用默认的Context配置。deployOnStarup的默认设置是true

Context元素属性

path

指定Web应用的URL入口

docBase

指定Web应用的文件路径,可以给定绝对路径,也可以是相对于HostappBase属性的相对路径(参见上面HostappBase属性)。如果Web应用采用开放目录结构,则指定Web应用的e根目录;如果Web应用是个WAR文件,则指定WAR文件的路径。

reloadable

如果为true,Tomcat服务器在运行状态下会监视在WEB-INF/classWEB-INF/libclass文件的改动。如果检测到有class文件更新,服务器会自动载入Web应用。

<servlet>元素的属性

<servlet-name>

定义Servlet的名字。

<servlet-class>

指定实现这个Servlet的类。

<init-param>

定义Servlet的初始化参数(包括参数名和参数值),一个 <servlet>元素中可以有多个<init-param>元素。

<load-on-startup>

指定当Web应用启动时,装载Servlet的次序。当这个值为正数或零,Servlet容器先加载数值小的Servlet,再一次加载其他数值大的Servlet。如果这个值为负数或没有设定,Servlet将在Web客户首次访问这个Servlet时加载它。

2.        抓的一个新的Tomcat的实例目录,需要研究其组织结构及个文件和文件夹功能。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

书籍:王帅《Tomcat的配置》

Wednesday, June 06, 2007========

3       Web.xml文件的配置

3.1         欢迎文件的配置

<welcome-file-list>

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

</welcome-file-list>

3.2         报错文件的设置

<error-page>

<error-code>404</error-code>

<location>/notFileFound.jsp</location>

</error-page>

<error-page>

<exception-type>java.lang.NullPointerException</exception-type> <location>/null.jsp</location>

</error-page>

3.3         会话超时的设置

<session-config>

<session-timeout>30</session-timeout>

</session-config>

时间单位为分钟。

3.4         过滤器的设置

<filter>

<filter-name>FilterSource</filter-name>

<filter-class>project4. FilterSource </filter-class>

</filter>

<filter-mapping>

<filter-name>FilterSource</filter-name>

<url-pattern>/WwwServlet</url-pattern>

<url-pattern>/haha/*</url-pattern>

过滤:

1.      身份验证的过滤Authentication Filters

2.      日志和审核的过滤Logging and Auditing Filters

3.      图片转化的过滤Image conversion Filters

4.      数据压缩的过滤Data compression Filters

5.      加密过滤Encryption Filters

6.      Tokenizing Filters

7.      资源访问事件触发的过滤Filters that trigger resource access events

8.      XSL/T 过滤 XSL/T filters

9.      内容类型的过滤 Mime-type chain Filter 注意监听器的顺序,如:先安全过滤,然后资源,然后内容类型等,这个顺序可以自己定,但最好要合理。

3.5         监听器的设置

<listener>

<listener-class>project4.SALListenerServlet</listener-class>

</listener>

监听器分四种,分别是:

1.        ServletContextListener:对上下文(全局)对象的创建和销毁进行监听;

2.        ServletContextAttributeListener:对上下文对象某一属性的增加、替换、删除进行监听;

3.        HttpSessionListener:对Session的创建和销毁进行监听;

4.        HttpSessionAttributeListener:对Session某一属性的增加、替换、删除进行监听。

3.6         Servlet设置

<servlet>

<servlet-name>HelloServlet</servlet-name> <servlet-class>project4.HelloServlet</servlet-class>

<init-param>

<param-name>age</param-name>

<param-value>26</param-value>

</init-param>

<init-param>

<param-name>ip</param-name>

<param-value>192.168.5.65</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern>

</servlet-mapping>

1.        <servlet>内的<servlet-name> 是一个逻辑名,可以是任何有效的标识名,可以将上述配置中的两个<servlet-name>HelloServlet</servlet-name>同时改成<servlet-name>qq</servlet-name>,得到的效果相同,注意要"同时改",这样可以继续保持对应的关系;

2.        <init-param>Servlet初始参数,在Servlet init()方法中通过getInitParameter("ip")取得,返回String型数据;

3.        <servlet-mapping>内的<servlet-name><servlet>内的 <servlet-name>一一对应,把客户端对/HeeloServlet的请求对应到<servlet-class>project4.HelloServlet</servlet-class>所指定的位置;

4.        <url-pattern>/HelloServlet</url-pattern>指在IE url中的请求形式。这里的 / 是相对于当前的web目录的,如H:/tomcat4/webapps/myweb

3.7         安全性设置

<security-constraint>

<display-name>test</display-name>

<web-resource-collection>

<web-resource-name>Success</web-resource-name> <url-pattern>/HelloServlet</url-pattern>

<http-method>GET</http-method>

<http-method>POST</http-method>

</web-resource-collection>

<auth-constraint>

<role-name>admin</role-name>

</auth-constraint>

<user-data-constraint>

<transport-guarantee>NONE</transport-guarantee>

</user-data-constraint>

</security-constraint>

<login-config>

<auth-method>BASIC</auth-method>

<realm-name>China of Beijing : ) </realm-name>

 </login-config>

4       tomcat-user.xml文件的配置

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>

<role rolename="tomcat"/>

<role rolename="role1"/>

<role rolename="manager"/>

<role rolename="admin"/>

<user username="tomcat" password="tomcat" roles="tomcat"/>

<user username="both" password="tomcat" roles="tomcat,role1"/>

<user username="role1" password="tomcat" roles="role1"/>

<user username="vdot_user" password="vdot123" roles="admin,manager"/>

</tomcat-users>

与以往文件中不一样的一点就是在user元素中,以前是name,现在改成username了。

5       Server.xml文件配置

<Context path="/icq" docBase="myweb" debug="0" reloadable="true">

<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_icq_log." suffix=".txt" timestamp="true"/>

</Context>

 

1.        Logger 段,为icq这个应用目录建立一个日志文件;

2.        Prefix 是日志文件的前缀;

3.        suffix 是日志文件的后缀;

4.        myweb说明其相对webapps的位置,是物理存在的目录;

5.        /icq说明其相对web URL的路径,是一个虚拟的路径,如:http://localhost/icq

6.        reloadable在开发时比较有用,指自动载入新的Servlet类。当系统发布是应该改成false

<Connector port="9090"  maxHttpHeaderSize="8192"  maxThreads="150"  minSpareThreads="25" maxSpareThreads="75"  enableLookups="false" redirectPort="8443" acceptCount="100"  connectionTimeout="20000" disableUploadTimeout="true" />

更改服务端口号的方法,9090处更改即可,但是需要注意防火墙屏蔽的端口地址。

6       日志配置

日志文件有四个,在jakarta-tomcat-4.0.1/logs目录下,要学会读懂日志。

1.        catalina_log125 catalina_log.2002-06-20.txt 记录了tomcat服务器启动的相关信息;

2.        localhost_access_log180行: localhost_access_log.2002-06-20.txt 用来记录客户端访问了哪些资源,格式如: 172.28.11.91 - - [20/Jun/2002:13:29:09 8000] "GET /web/WwwServlet HTTP/1.1" 500 149 200 149 是服务器反应的状态码;

3.        localhost_examples_log localhost_examples_log.2002-06-20.txt213行 这个是examples的日志文件;

4.        localhost_log localhost_log.2002-06-20.txt 190行,这里记录了服务器所运行的程序的详细信息。包括错误信息,调试信息等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值