Java开发环境及开发基础-环境配置-Tomcat服务器

Tomcat服务器


Tomcat是纯Java实现的,具有平台无关性。


◆Tomcat版本的选择:

      JDK1.4 建议使用 Tomcat5.0.x系列

      JDK1.5 建议使用 Tomcat5.5.x系列

      JDK1.6 建议使用 Tomcat6.0.x以上系列

      对于Servlet3.0规范,需要使用 Tomcat7.0.x或更新的版本系列。


◆Tomcat工具的选择:

      Windows平台下载ZIP包,Linux平台下载TAR包,建议不要下载安装文件,因为安装的Tomcat看不到启动、运行时控制台的输出,不利于开发。


      解压缩后的文件主要具有以下结构:

          bin:存放启动和关闭Tomcat的命令的路径。

          conf:存放Tomcat的配置,所有的Tomcat的配置都在该路径下设置。

          lib:存放着Tomcat服务器的核心类库(Jar文件),如果需要扩展Tomcat功能,也可将第三方类库复制到该路径下。

          logs:这是一个空路径,该路径用于保存Tomcat每次运行后产生的日志。

          temp:保存Web应用运行过程中生成的临时文件。

          webapps:该路径用于自动部署Web应用,将Web应用复制在该路径下,Tomcat会将该应用自动部署在容器中。

          work:保存Web应用运行过程中,编译生成的class文件。该文件夹可以删除,但每次启动Tomcat服务器时,系统将再次建立该路径。


◆Tomcat使用的前提条件:

      运行Tomcat只需要一个环境变量:JAVA_HOME;该环境变量的值指向JDK安装路径;JDK安装路径下有javac.exe、native2ascii.exe等程序;JDK安装路径下还含有一个lib目录,该路径下应该还有dt.jar和tools.jar两个文件。


◆启动Tomcat:

      对于Windows平台只需要双击Tomcat安装路径下bin路径中的startup.bat文件即可,启动后的画面如下所示(下图是Tomcat7启动的画面):


Java开发环境及开发基础-环境配置-Tomcat服务器_第1张图片
 

◆配置Tomcat的服务端口:

      Tomcat的默认服务端口是8080,可以通过管理Tomcat配置文件来改变该服务端口,甚至可以通过修改配置文件让Tomcat同时在多个端口提供服务。Tomcat的配置文件都放在conf目录下,控制端口的server.xml文件也存放在该路径下,其中有以下配置:

      <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

      其中,port="8080"就是Tomcat提供Web服务的端口,将8080修改成任意端口,建议使用1024以上的端口,避免与公用端口冲突。


      如果需要让Tomcat运行多个服务,只需要复制server.xml文件中的<service>元素,并修改相应的参数即可实现一个Tomcat运行多个服务,当然必须使用不同的端口提供服务。<service>元素如下:


  <Service name="Catalina">

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

    <Engine defaultHost="localhost" name="Catalina">

      <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

      </Realm>

      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>

      <Context docBase="E:\iDev\jdev\ide\jee3.7_zh\tomcat\7.0.22\wtpwebapps\servlet2_5" path="/servlet2_5" reloadable="true" source="org.eclipse.jst.jee.server:servlet2_5"/></Host>

    </Engine>

  </Service>


◆配置Tomcat列出web应用根路径下的所有页面以便选择需要调试的JSP页面:
      在默认情况下,Tomcat不会列出web应用根路径下的所有页面,可以打开conf目录下的web.xml文件,找到如下配置,将listings参数的值修改为true即可让Tomcat列出web应用根路径下的所有页面。
      <init-param>
          <param-name>listings</param-name>
          <param-value> true </param-value>
      </init-param>

◆配置Tomcat的用户及密码:
      控制台的用户名和密码是通过Tomcat的JAAS控制的,JAAS的全称是Java Authentication Authorization Service即Java验证和授权API,它用于控制对Java Web应用的授权访问。
      webapps路径是Web应用的存放路径,而Manager控制台对应的Web应用也存放在该路径下,进入webapps/manager/WEB-INF路径下,该路径存放了Manager应用的配置文件,使用无格式编辑器打开web.xml文件,可以看到如下片段:
  <!-- Define a Security Constraint on this Application -->
  <!-- NOTE:  None of these roles are present in the default users file -->
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>HTML Manager interface (for humans)</web-resource-name>
      <url-pattern>/html/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Text Manager interface (for scripts)</web-resource-name>
      <url-pattern>/text/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-script</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>JMX Proxy interface</web-resource-name>
      <url-pattern>/jmxproxy/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-jmx</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Status interface</web-resource-name>
      <url-pattern>/status/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
       <role-name>manager-script</role-name>
       <role-name>manager-jmx</role-name>
       <role-name>manager-status</role-name>
    </auth-constraint>
  </security-constraint>

  <!-- Define the Login Configuration for this Application -->
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Tomcat Manager Application</realm-name>
  </login-config>
      通过以上的配置文件可知:登录Manageer控制台可能需要不同的Manager角色,对于普通开发者,通常需要匹配/text/*、/status/*的资源,因此为该用户分配一个manager-gui角色即可。
      Tomcat默认采用文件安全域,即以文件存放用户名和密码,Tomcat的用户由conf路径下的tomcat-users.xml文件控制,打开该文件,配置如下内容:
<?xml version="1.0" encoding="UTF-8"?>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-gui"/>
  <user username="admin" password="admin" roles="tomcat"/>
  <user username="manager" password="manager" roles="manager-gui"/>
  <user password="admin" roles="manager" username="admin"/>
  <user password="admin" roles="manager" username="admin"/>
  <user password="admin" roles="manager" username="admin"/>
  <user password="admin" roles="manager" username="admin"/>
</tomcat-users>
以上配置文件中粗体字代码增加了一个用户,用户名:manager,密码:manager,角色属于manager-gui

◆Tomcat的部署形式(两种):
      1)、将整个路径部署成Web应用
      2)、将War文件部署成Web应用

◆Tomcat的部署方式:
      1)、利用Tomcat自动部署
          将Web应用复制到Tomcat的webapps下即可
      2)、利用控制台部署
          使用Tomcat的用户登录控制台,在Deploy视图中,填写context path(required)和WAR or Directory URL
          例如,context path(required):/aaa
                   WAR or Directory URL: E:\iDev\jdev\prj\meple37zh\webServlet25
          则Tomcat的webapps路径下多了一个名为aaa的文件夹,该文件夹的内容与E:\iDev\jdev\prj\meple37zh\webServlet25 路径下文件夹内容一致。
      3)、增加自定义的Web部署文件
          需要在conf目录下新建Catalina目录,再在Catalina目录下新建localhost目录,最后在该目录下新建一个名字任意的xml文件;该文件就是部署Web应用的配置文件,该文件的主文件名将作为web应用的虚拟url路径。该文件的内容通常是一个Context的标签,指明了web工程所在的绝对路径。
      4)、修改server.xml文件部署Web应用
          修改server.xml文件,一般不建议使用。
          例如:Tomcat的server.xml中的配置
           <Context path="" docBase="E:\MyEclipse\Workspaces\PrjCase\WebRoot" reloadable="true"/>

◆Tomcat配置数据源的方式(两种):
      1)、全局数据源:该数据源可以让所有的web应用访问
      2)、局部数据源:只能让单独的web应用访问
      <context docBase="G:/publish/codes/01/aa" privileged="true">
      <!-- 其中name指定数据源在容器中的JNDI名
             driverClassName指定连接数据库的驱动
      url指定数据库服务的URL
      username指定连接数据库的用户名
      password指定连接数据库的密码
      maxActive指定数据源最大活动连接数
      maxIdle指定数据池中最大的空闲连接数
      maxWait指定数据池中最大等待获取连接的客户端
      -->
            <Resource name="jdbc/dstest" auth="Container"
      type="javax.sql.DataSource"
      driverClassName="com.mysql.jdbc.Driver"
      url="jdbc:mysql://localhost:3306/javaee"
      username="root" password="32147" maxActive="5"
      maxIdle="2" maxWait="10000"/>
      </context>

 

你可能感兴趣的:(环境配置,tomcat服务器,Java开发环境及开发基础)