我的J2EE成功之路
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 搭建Java Web运行环境

Jakarta Tomcat是Sun公司Servlet和JSP规范的实现,也是目前使用最为广泛的Servlet和JSP容器。为了不使读者在环境配置上浪费太多的时间,这里笔者将一步一步地讲解如何下载Tomcat和配置Tomcat。

2.2.1 下载Tomcat

下载Tomcat的具体步骤如下:

在浏览器的地址栏中输入网址http://tomcat.apache.org,即可进入Tomcat的首页画面,如图2.16所示。

图2.16 Tomcat的首页画面

在Tomcat的首页画面上,单击Tomcat 6.x,进入Tomcat 6.x的下载画面,如图2.17所示。

图2.17 Tomcat 6.x的下载画面

笔者写作本书时Tomcat的最新版本是6.0.16,本书将采用这个版本。Tomcat提供了安装版和配置版两种安装方式,本书采用配置版,因此单击Binary Distributions下Core下面的zip链接,下载apache-tomcat-6.0.16.zip,如图2.18所示。

图2.18 下载apache-tomcat-6.0.16.zip

2.2.2 设定TOMCAT_HOME

因为本书下载的是配置版的Tomcat,因此下载完毕后不需要安装,只要配置Tomcat的环境变量即可。步骤如下:

解压缩apache-tomcat-6.0.16.zip,存放在一个硬盘分区下。

在Windows桌面中,用鼠标右键单击“我的电脑”,弹出快捷菜单。

在弹出的快捷菜单中选择“属性”,打开“系统属性”对话框。

在“系统属性”对话框中,单击“高级”标签下的“环境变量”按钮,打开“环境变量”对话框,如图2.19所示。

单击“系统变量”区域中的“新建”按钮,在打开的“新建系统变量”对话框中,设定TOMCAT_HOME= D:\ apache-tomcat-6.0.16,如图2.20所示。

图2.19 “环境变量”对话框

图2.20 设定系统变量TOMCAT_HOME

2.2.3 验证Tomcat是否安装成功

验证Tomcat是否安装成功的步骤如下:

双击Tomcat安装目录下bin文件夹中的startup.bat,启动Tomcat,如果是在Linux环境下,则启动startup.sh,Tomcat启动后的画面如图2.21所示。

图2.21 Tomcat启动后的画面

Tomcat启动后,在IE地址栏中输入http://localhost:8080,如果能看到Tomcat启动成功的欢迎画面,则表示Tomcat配置成功。Tomcat启动成功的欢迎画面如图2.22所示。

图2.22 Tomcat启动成功的欢迎画面

可以直接修改Tomcat的配置文档来配置Tomcat,也可以通过Tomcat提供的管理界面来配置。

如果要通过管理界面来配置Tomcat,则需要将以下代码加入到apache-tomcat-6.0.16\conf\tomcat-users.xml中。示例代码如下:

      <role rolename="manager"/>
      <user username="tomcat" password="tomcat" roles="manager"/>

加入上述代码后的tomcat-users.xml文件内容如下:

      <?xml version='1.0' encoding='utf-8'?>
      <tomcat-users>
      <role rolename="manager"/>
      <user username="tomcat" password="tomcat" roles="manager"/>
      </tomcat-users>

在Tomcat欢迎画面的左上角单击“Tomcat Manager”链接,会打开登录画面,如图2.23所示。

图2.23 登录画面

输入前面配置的用户名和密码,然后单击“确定”按钮,即可进入管理界面,如图2.24所示。

图2.24 管理界面

注意:如果是在Tomcat启动后修改的tomcat-users.xml文件,则需要重新启动Tomcat,加入的用户名和密码才能生效。

在管理界面中,管理员可以对Tomcat进行相应的管理工作,比如修改目录、添加目录等。

在Tomcat欢迎画面的左上角单击“Status”链接,会进入服务器状态画面,如图2.25所示。

图2.25 服务器状态画面

在服务器状态画面中,可以查看服务器中操作系统的版本、Tomcat的版本、JVM的使用情况等。

在Tomcat欢迎画面的左下角,有Tomcat提供的一些示例,单击“Servlets Examples”链接,可进入Servlet的示例画面,如图2.26所示。

图2.26 Servlet的示例画面

单击Servlet的示例画面中的任意一个示例后面的“Execute”,即可看到示例的运行结果;单击示例后面的“Source”,即可看到示例的源代码。

2.2.4 在Tomcat下创建和发布Web应用

在Tomcat下创建和发布Web应用,对于单纯的JSP程序来说,在apache-tomcat-6.0.16\webapps文件夹下建立一个程序目录,然后将JSP程序放在该目录下即可。比如,在apache-tomcat-6.0.16\webapps文件夹下建立demo,然后在demo文件夹下编写一个JSP文件gf.jsp,启动Tomcat,在浏览器地址栏内输入http://localhost:8080/demo/gf.jsp即可访问JSP程序。如果不想让JSP文件放在apache-tomcat-6.0.16\webapps文件夹下,而是另在其他地方建立目录,则需要修改apache-tomcat-6.0.16\conf文件夹下的server.xml文件,将以下代码加入server.xml文件中,具体如下:

      <Context path="/demo" reloadable="true" docBase="E:\erp\demo" workDir="E:\erp\demo\work">

上述代码表示将JSP程序放在了E盘的erp\demo文件夹下。

server.xml文件被加入上述代码后的示例代码如下:

      <!--Note:  A"Server"is not itself a"Container",so you may not
          define subcomponents such as "Valves" at this level.
          Documentation at /docs/config/server.html
        -->
      <Server port="8005" shutdown="SHUTDOWN"><!--设定服务监听端口-->
          <!--载入APR library -->
          <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
          <Listener className="org.apache.catalina.core.JasperListener" /><!--初始化Jasper -->
          <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /><!--使Tomcat服务支持JMX-->
          <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
          <GlobalNamingResources>
           <!--用户管理-->
           <Resource name="UserDatabase" auth="Container"
                    type="org.apache.catalina.UserDatabase"
                    description="User database that can be updated and saved"
                    factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                    pathname="conf/tomcat-users.xml" />
           </GlobalNamingResources>
           <!--一个Service可以有一个或多个Connectors-->
           <Service name="Catalina">
            <!--一个Connector表示接受requests请求和返回responses are returned.
            这里设定端口号为8080,使用的协议为HTTP 1.1-->
            <Connector port="8080" protocol="HTTP/1.1"
                      maxThreads="150" connectionTimeout="20000"
                      redirectPort="8443" />
            <!--也可以设定其他的一些参数 -->
           <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                    maxThreads="150" scheme="https" secure="true"
                    clientAuth="false" sslProtocol="TLS" />
           -->
           <!--设定端口号为8009,支持协议为AJP 1.3-->
           <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
          <!-- An Engine represents the entry point (within Catalina) that processes
              every request.The Engine implementation for Tomcat stand alone
              analyzes the HTTP headers included with the request, and passes them
              on to the appropriate Host (virtual host).
              Documentation at /docs/config/engine.html -->
          <!--使用UserDatabase配置全局JNDI资源-->
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                  resourceName="UserDatabase"/>
              <Host name="localhost"  appBase="webapps"<!--配置虚拟主机名为localhost-->
                  unpackWARs="true" autoDeploy="true"
                  xmlValidation="false" xmlNamespaceAware="false">
          <!--设定日志的前缀和后缀
          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
              prefix="localhost_access_log."suffix=". txt" pattern="common" esolveHosts="false"/>
          -->
          <Context path="/demo" reloadable="true" docBase="E:\erp\demo"
              workDir="E:\erp\demo\work"><!--设定虚拟路径-->
          <!--虚拟主机配置结束-->
          </Host>
        </Engine>
      </Service>
    </Server>

对于Servlet程序来说,则需要将编译后的文件*.class存放在demo\WEB-INF\classes\com\demo文件夹下。另外,在demo\WEB-INF文件夹下建立web.xml文件,在web.xml文件中输入如下代码。

      //******* web.xml**************
      <?xml version="1.0" encoding="GBK"?>
      <web-app version="2.4"
        xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
      <!--设定Servlet-->
      <servlet>
              <servlet-name>Servlet</servlet-name>
              <servlet-class>com.demo.gf</servlet-class>
      </servlet>
      <!--设定Servlet的对应关系-->
          <servlet-mapping>
              <servlet-name>Servlet</servlet-name>
              <url-pattern>.action</url-pattern>
          </servlet-mapping>
      </web-app>

这段代码表示,凡是后缀为. action的请求,都将通过com.demo.gf来进行处理。其他的配置则和JSP程序一样,启动Tomcat,在浏览器的地址栏内输入http://localhost:8080/demo. action即可访问Servlet程序。