tomcat使用及常見問題
1)到apache官網。www.apache.org http://jakarta.apache.org(產品的主頁)
2)
安裝版:window (exe、msi) linux(rmp)
壓縮版:window(rar,zip) linux(tar,tar.gz)學習時候使用
3)執行和關閉tomcat
3.1 啟動軟體
a)找到%tomcat%/bin/startup.bat ,雙擊這個檔案
b)彈出視窗,顯示資訊(不要關閉次視窗)
c)開啟瀏覽器,輸出以下地址
http://localhost:8080
d)看到一隻貓畫面,證明軟體啟動成功!
3.3 關閉軟體
a)找到%tomcat%/bin/shutdown.bat
c)開啟瀏覽器,輸出以下地址。看到“無法連線”(最好先清空瀏覽器快取)
4.2 tomcat軟體使用的常見問題
1)閃退問題
原因:tomcat軟體是java語言開發的。 tomcat軟體啟動時,會預設到系統的環境變數中查詢一個名稱叫JAVA_HOME的變數。這個變數的作用找到tomcat啟動所需的jvm。
解決辦法; 到環境變數中設定JAVA_HOME的變數
JAVA_HOME= C:\Program Files\Java\jdk1.6.0_30 (注意別配置到bin目錄下)
2)端口占用的錯誤
原因: tomcat啟動所需的埠被其他軟體佔用了!
解決辦法:
a)關閉其他軟體程式,釋放所需埠
b)修改tomcat軟體所需埠
找到並修改%tomcat%/conf/server.xml檔案
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> |
3)CATALINA環境變數問題
原因: tomcat軟體啟動後,除了查詢JAVA_HOME後,還會再查詢一個叫CATALINA_HOME變數,這個變數的作用是設定tomcat的根目錄。
解決辦法:建議不要設定CATALINA_HOME變數。檢查如果有的話,清除掉!!!
4.3 體驗tomcat軟體作用
webapps目錄: tomcat共享目錄。需要共享的本地資源放到此目錄中。
4.4 URL
URL全名叫統一資源定位符,用於定位網際網路的資源。
問題: http://localhost:8081/myweb/test.html 看到檔案?
http:// 協議。http協議。
localhost 域名。為了找到IP地址。
本地域名: localhost
外部域名:www.baidu.com
8081 埠。軟體監聽的
8080: tomcat預設的埠
3306:mysql資料庫的埠
1521: orace資料庫的埠。
/myweb: web應用的名稱。預設情況下,在webapps目錄下找
/test.html : 資源名稱。
5 Tomcat的目錄結構
|-bin: 存放tomcat的命令。
catalina.bat 命令:
startup.bat -> catalina.bat start
shutdown.bat - > catalina.bat stop
|- conf: 存放tomcat的配置資訊。其中server.xml檔案是核心的配置檔案。
|-lib:支援tomcat軟體執行的jar包。其中還有技術支援包,如servlet,jsp
|-logs:執行過程的日誌資訊
|-temp: 臨時目錄
|-webapps: 共享資源目錄。web應用目錄。(注意不能以單獨的檔案進行共享)
|-work: tomcat的執行目錄。jsp執行時產生的臨時檔案就存放在這裡
6 Web應用的目錄結構
|- WebRoot : web應用的根目錄
|- 靜態資源(html+css+js+image+vedio)
|- WEB-INF : 固定寫法。
|-classes: (可選)固定寫法。存放class位元組碼檔案
|-lib: (可選)固定寫法。存放jar包檔案。
|-web.xml
注意:
1)WEB-INF目錄裡面的資源不能通過瀏覽器直接訪問
2)如果希望訪問到WEB-INF裡面的資源,就必須把資源配置到一個叫web.xml的檔案中。
練習:
1)在webapps下建立一個mybbs目錄
2)建立兩個檔案
2.1 index.html 裡面隨便寫內容 ,有超連結-連線到test.html
2.2 test.html 裡面隨便寫
3)通過瀏覽器訪問到。
7 手動開發動態資源
7.1 靜態資源和動態資源的區別
靜態資源: 當用戶多次訪問這個資源,資源的原始碼永遠不會改變的資源。
動態資源:當用戶多次訪問這個資源,資源的原始碼可能會發送改變。
7.2 動態資源的開發技術
Servlet : 用java語言來編寫動態資源的開發技術。
Servlet特點:
1)普通的java類,繼承HttpServlet類,覆蓋doGet方法
2)Servlet類只能交給tomcat伺服器執行!!!!(開發者自己不能執行!!!)
Servlet手動編寫步驟:
1)編寫一個servlet程式,繼承HttpServlet
/** * 第一個servlet程式 * @author APPle * */ public class HelloServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解決中文亂碼問題 resp.setContentType("text/html;charset=utf-8"); //向瀏覽器輸出內容 resp.getWriter().write("這是第一個servlet程式。當前時間為:"+new Date()); } } |
2)找到HelloServlet類的class位元組碼,然後把拷貝到tomcat的一個web應用中WEB-INF/classes目錄下。
3)在當前web應用下的web.xml檔案配置Servlet。
<!-- 配置一個servlet程式 --> <servlet> <!-- servlet的內部名稱 ,可以自定義--> <servlet-name>HelloServlet</servlet-name> <!-- servlet類名: 包名+簡單類名--> <servlet-class>gz.itcast.d_servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <!-- servlet的內部名稱,和上面的名稱保持一致!!!--> <servlet-name>HelloServlet</servlet-name> <!-- servlet的訪問名稱: /名稱 --> <url-pattern>/hello</url-pattern> </servlet-mapping> |
4)啟動tomcat伺服器,執行訪問
訪問servlet: http://localhost:8080/myweb/ hello
8 工具開發動態資源
1)建立web project (javaweb工程)
2)在WebRoot下建立靜態資原始檔,
3)在src下建立動態資原始檔
3.1 new -> Servlet( servlet的程式碼生成器)
3.2 寫pacakge -> class名 -> 修改mapping url
4)關聯tomcat伺服器
4.1 window-> Preferences - > MyEcplise -> servers -> Tomcat 6.x (注意一定要enable)
5)部署web project應用。(拷貝web應用到tomcat的webapps目錄下)
6)啟動tomcat伺服器
7)訪問servlet
http://localhost:8081/day08_web/hello