16 2010

[转]Tomcat 系统架构与设计模式

第 1 部分 工作原理:http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/

第 2 部分 设计模式分析:http://www.ibm.com/developerworks/cn/java/j-lo-tomcat2


24 2009

如何在同一Tomcat下进行多端口配置

首先来看一下%Tomcat%/conf下的server.xml配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 <Service name="Catalina">
    <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    <Connector port="8009" 
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>

分别注意下,Service,Engine和Host节点的name属性。再来看一下conf目录下是不是存在Catalina/localhost这样的目录结构,而且host-manager.xml和manager.xml都在此目录下。

看到这里就应该知道该怎么进行多端口配置了吧?在conf目录下创建sample/localhost的目录结构,sample可以随意。然后在server.xml中添加相应的service节点,不要忘记修改端口号。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Service name="sample">
    <Connector port="80" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8453" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    <Connector port="8019" 
               enableLookups="false" redirectPort="8453" protocol="AJP/1.3" />
    <Engine name="Qone" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>

不得不佩服tomcat的扩展性设计。


11 2009

Tomcat带中文名的文件下载

今天用Tomcat作为服务器提供文件下载的时候,发现无法找到名称带中文的文件。

在\conf\server.xml文件中的<Connector>元素中加入URIEncoding=”UTF-8″,即可以解决这个问题,加入后的代码如下:

<Connector port=”8080″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ URIEncoding=”UTF-8″ />


11 2009

Tomcat虚拟目录设置

今天为了给你朋友通过校园网传送文件,因为不在同一个网段内,IPMessenger无法找到对方,只好在自己电脑上用tomcat做了一个Http服务器。但是总不能将所有文件拷贝到webapps\ROOT下吧,Google了一下,找到了tomcat设置虚拟目录的方式。

在server.xml中加入<Context>元素,在名为“localhost”的<Host>元素中加入如下<Context>元素:

<Context path=”/down” docBase=”F:\data” reloadable=”true” />

path:指定访问该web应用的URL入口,docBase:指定Web应用的实际文件路径,可以是绝对路径,也可以是相对于<Host>的appBase属性的相对路径。