搞定J2EE核心技术与企业应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 搭建Java Web运行环境

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

2.2.1 下载Tomcat 7

Tomcat 7是一款很不错的免费开源的JSP服务器,它被Sun公司推荐为运行Servlet和JSP的容器。同时还要注意Tomcat 7还具有Java Web服务器的基本功能,能够提供数据库连接池、SSL、Proxy等许多通用组件。Tomcat目前最新的版本为Tomcat 7.0.20,可以通过下面的步骤来实现该平台的下载。

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

图2.16 Tomcat的首页

02 在Tomcat的首页中,单击“Tomcat 7.0”链接,进入Tomcat 7.0.20的下载画面,如图2.17所示。

图2.17 Tomcat 7.0.20的下载画面

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

图2.18 下载apache-tomcat-7.0.20.zip

2.2.2 设定TOMCAT_HOME

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

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

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

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

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

图2.19 “环境变量”对话框

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

图2.20 设定系统变量TOMCAT_HOME

2.2.3 验证Tomcat 7是否安装成功

下载和安装完Tomcat 7后,如果想启动Tomcat 7服务器,还需要配置该服务器。配置完服务器后,为了验证Tomcat 7是否安装成功,可以通过如下步骤来实现:

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

图2.21 Tomcat启动后的画面

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

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

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

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

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

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

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

05 在Tomcat 7欢迎画面的右上角单击“Manager App”图片,会打开“Tomcat Manager Application”对话框,如图2.23所示。

图2.23 “Tomcat Manager Application”对话框

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

图2.24 管理界面

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

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

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

图2.25 服务器状态画面

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

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

图2.26 Servlet的示例画面

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

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

在Tomcat 7下创建和发布Web应用,对于单纯的JSP程序来说,在apache-tomcat-7.0.20\webapps文件夹下建立一个程序目录,然后将JSP程序放在该目录下即可。比如,在apache-tomcat-7.0.20\webapps文件夹下建立demo,然后在demo文件夹下编写一个JSP文件gf.jsp,启动Tomcat,在浏览器地址栏中输入http://localhost:8080/demo/gf.jsp即可访问JSP程序。如果不想把JSP文件放在apache-tomcat-7.0.20\webapps文件夹下,而是放在其他地方创建的目录,则需要修改apache-tomcat-7.0.20\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请求和返回,这里设定端口号为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 7,在浏览器的地址栏中输入http://localhost:8080/demo.action即可访问Servlet程序。