- 我的J2EE成功之路
- 郭鋒等編著
- 1462字
- 2018-12-28 13:10:32
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程序。
- Dreamweaver CS3+Flash CS3+Fireworks CS3創意網站構建實例詳解
- PostgreSQL 11 Server Side Programming Quick Start Guide
- Embedded Programming with Modern C++ Cookbook
- 悟透JavaScript
- Microsoft System Center Confi guration Manager
- Photoshop行業應用基礎
- Mastering Geospatial Analysis with Python
- Photoshop CS5圖像處理入門、進階與提高
- 一步步寫嵌入式操作系統
- AVR單片機工程師是怎樣煉成的
- 工業機器人入門實用教程
- Xilinx FPGA高級設計及應用
- Eclipse RCP應用系統開發方法與實戰
- Qt中的C++技術
- Mastering Kubernetes