fd

Tomcat是Apache的一个子项目,也是一个开源项目,主要是用于J2EE Web容器,由于一个开源项目,在学习与开发测试中经常被应用。目前在商业经常用到的Web服务器是BEA WebLogic。

   这时选择Tomcat作为学习与测试环境,以下是一些基本配置:

  一、下载Tomcat,这里是Tomcat5.5.15,直接安装,端口号设置为:8080。
  注意:JDK1.4与TOMCAT5.5不能配置在一起,这样程序跑不起来,TOMCATL5.5,必须要JDK1.5以上的,才可以
  安装目录:1、webapps:主要用于web应用程序部署,比如你可以把你的应用程序包,如war文件拷到该目录,容器会自动部署。
  2、conf:主要是放置Tomcat服务器的相关配置文件。
  3、common:容器全局变量的文件放置地方,如common/lib下就是放置一些需要全文配置的文件包。

  二、J2EE的相关部署规范:

  一般来说作为一个符合规范的WEB程序,会包括以下文件夹和文件:

  /WEN-INF/:放置一些配置文件与不希望外部程序访问的隐私文件。在网络上是不允许访问该文件夹的。
  在/WEN-INF/下有一个web.xml文件,这是对当前应用程序的相关设置,资源寻找等。
  /WEN-INF/classes:是应用程序的根路径
  /WEN-INF/lib:放置需要引入的包,应用程序导入的包先从这里开始寻找,其次到容器的全局路径下$CATALINA_HOME/common/lib下寻找。

  以下是基本文件夹:
  /tomcat
    /common
      /lib
      /classes
    /conf
    /webapps
      /root
        web.xml
        /WEB-INF
          /lib
          /classes
  三、容器的配置(server.xml)

  主目录/conf下server.xml文件是对web服务器的配置:

  以下是一些常见的设置,http端口设置,找到:
    

  把8080端口改为你喜欢使用并且当前没有使用的端口,以后就可以利用该端口来访问测试用的网站了。

  找到:
  ….
Host name=”localhost” appBase=”webapps” unpackWARs=”true” autoDeploy=”true”  
      xmlValidation=”false” xmlNamespaceAware=”false”>  
       ….  

    

  在他们之间可以添加一个元素,如:

 

  其中path表示网络访问的上下文路径;reloadable表示可以在运行时在classes与lib文件夹下自动加载类包;docBase表示应用程序的路径,在Windows中如:docBase=”E:\java\new”;workDir表示是缓存文件的放置地点,可以方便跨平台移植时不用重编译,这样,应用程序就可以放到硬盘上的任意地方了。

  还有一个方法也可以做到这点:编写一个xml文件,然后放到Tomcat/conf/Catalina/相应的网站(如localhost)/下,如上:编写一个文件new.xml内容如下:
    

  放到Tomcat/conf/Catalina/localhost/下,在浏览器打开:http://localhost/new就会转向到E:\java\new程序。

  四、Tomcat5中文解决

  对于中文系统主要有以下问题:

  1、表单提交的数据,用request.getParameter(“xxx”)返回的字符串为乱码或为???;
  2、直接通过url如:http://localhost/test.jsp?name=中国,这样的get请求在服务端用request.getParameter(“name”)时返回的也是乱码。

  原因:
  1、Tomcat的J2EE实现对表单提交即POST方式时处理参数采用缺省的iso-8859-1来处理;
  2、Tomcat的get方式提交的请求对query-string处理时采用了和post不一样的处理方式。

  解决办法:

  首先给所有的JSP文件都加上:
<%@ page contentType="text/html;charset=gb2312" %>  

  1、post方法:

  先实现一个Filter,设置处理字符集为GBK。(在Tomcat的webapps/servlet-examples目录有一个完整的例子,参考web.xml和SetCharacterEncodingFilter的配置)。

  1)、把$TOMCAT/webapps/servlets-examples/WIN-INF/classes/filters/SetCharacterEncodingFilter.class文件copy到应用程序/WIN-INF/filters下,如果没有filters目录,就创建一个。

  2)、在web.xml里加入以下几行:

    
    Set Character Encoding  
    filters.SetCharacterEncodingFilter  
      
      encoding  
      GBK  
    
 
  

    
    Set Character Encoding  
    /*  
  
 

  3)、完成。post方法还可以在编程时,在用到request的前面添加语句:

   <%request.SetCharacterEncodin("GBK");%>  
也可以解决中文问题。

  2、get方式的解决办法:

  1)、打开server.xml文件,找到区块:

     debug=”0″ connectionTimeout=”20000″ disableUploadTimeout=”true”   URIEncoding=”GBK” />  
  加上一句URIEncodeing=”GBK”,如上所示。

  2)、重启Tomcat,乱码就可解决。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据