第二部分_搭建Java Web開發環境與配置Tomcat伺服器&JSP詳解

來源:互聯網
上載者:User

標籤:

MyEclipse整合Tomcat

  • 首先配置Tomcat,即配置環境變數Java_HOME、path,在第一講中已經完成了,不再贅述。
  • Eclipse代碼風格匯入MyEclipse:
    • 每個項目都要配置一次代碼風格,文字大小,快速鍵等等比較麻煩,可以用File下面的匯入、匯出功能。比如Eclipse下的File->General->Preferences->export all,產生一個*.epf檔案,然後用MyEclipse中的File->import->General->Preferences,選擇剛剛匯出的epf檔案import all即可。
  • 開啟MyEclipse,在Window->Preferences->MyEclipse->Servers,選擇Tomcat 6.x,將Tomcat home directory設定為Tomcat的根目錄(比如我這裡是D:\Program Files\apache-tomcat-6.0.44,順便提一下,我本來裝的最新版8.0.9,可是不知道如何整合到MyEclipse中,因為MyEclipse(我的是8.5版)裡面只有Tomcat 4/5/6這幾個選項,因此不得不到Apache Tomcat首頁下載6.0版的Tomcat),將Tomcat sever下面的選項按鈕選為Enable,確定。
  • MyEclipse中,Window->Preferences->Java->Installed JREs,Add一個Standard VM,在JRE home中鍵入本機Java的安裝目錄,回到剛才的Installed JREs目錄,選擇剛剛add的JRE,不要使用MyEclipse內建的,另外這裡之所以要選擇JRE,是因為Tomcat本身就是Java寫的,要有Java運行時環境才能跑起來。接下來,回到Tomcat 6.x,將JDK選為剛剛添加的那個。

配置完成後,在MyEclipse的右上方有一個名為Open Perspective,點擊,選擇MyEclipse Java Enterprise,然後MyEclipse中上部有個名為Run/Stop/Restart MyEclipse Servers的表徵圖,點擊選擇啟動Tomcat 6.x。而後在瀏覽器地址欄中輸入localhost:8080,出現Apache Tomcat的首頁,即為配置成功。

使用Eclipse結合Tomcat開發一個簡單的Servlet和JSP

Servlet是Java伺服器端編程,不同於我們之前寫的一般的Java應用程式,Servlet程式是運行在伺服器上的,伺服器有很多種,這裡我們使用的是Tomcat。

  • 首先建立項目:

  File->New->Web Project,項目命名為test,J2EE Specification Level 選擇Java EE 5.0,確定。到硬碟上找到test檔案夾,開啟WebRoot,開啟WEB-INF,裡面有三個檔案classes,lib,web.xml,其中classes用來放置Java編譯好的問價,lib是項目依賴的第三方JAR,web.xml是項目的部署描述符。

其次,想要項目放到Tomcat裡運行,必須告訴Tomcat項目在什麼地方:

  進入Tomcat的安裝目錄,開啟conf目錄,開啟server.xml,通過對這個檔案進行相關的設定,Tomcat就可以找到我們的項目,在最後面幾行的</Host>標籤之前添加資訊:

<Context path="/test" docBase="D:\JavaWeb\test\WebRoot" reloadable="true"/>

其中Context是內容相關的意思,Tomcat伺服器中可以配置多個上下文,每個上下文對應一個Web應用;docBase是項目下面的WebRoot目錄,path是邏輯上的虛擬路徑(注意這裡的test和項目的test雖然名字一樣,但是它們之間沒有任何關係,你也可以把path改成"/abc"等),映射到docBase;reloadable表示是否可以重新載入。

  接下來在MyEclipse中重新啟動Tomcat,瀏覽器地址欄鍵入localhost:8080/test,顯示This is my JSP page,說明剛才的配置成功。

  • 然後,我們使用Servlet產生一個靜態頁面:

  在src目錄下建立一個包,命名為com.test.servlet;在建立的包下面建立一個類MyServlet,該類需要繼承HttpServlet類(一般來說,Servlet都需要繼承此類)。類的實現如下:

package com.test.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class MyServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{process(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{process(req, resp);}protected void process(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{resp.setContentType("text/html");PrintWriter out = resp.getWriter();out.println("<HTML><HEAD><TITLE>My First Servlet</TITLE></HEAD>");out.println("<BODY>");out.println("<H1>Hello World</H1>");out.println("</BODY></HTML>");}}

接著在MyEclipse中配置Web-INF目錄下的web.xml,開啟在左下角選擇source,刪掉:

<welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>

在</web-app>前面添加:

<servlet><servlet-name>MyServlet</servlet-name><servlet-class>com.test.servlet.MyServlet</servlet-class></servlet><servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/MyServlet</url-pattern></servlet-mapping>

重啟Tomcat,瀏覽器訪問http://localhost:8080/test/MyServlet,出現"Hello World"即為成功。

在程式中對process方法稍作修改,列印系統目前時間:

protected void process(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{resp.setContentType("text/html");PrintWriter out = resp.getWriter();out.println("<HTML><HEAD><TITLE>My First Servlet</TITLE></HEAD>");out.println("<BODY>");out.println("<H1>Hello World</H1>");out.println("<br>" + new java.util.Date().toLocaleString());out.println("</BODY></HTML>");}

重新整理瀏覽器的http://localhost:8080/test/MyServlet頁面即可。

當然我們也可以在Console中列印系統時間,在剛剛添加的哪行語句下面,添加:

System.out.println("當前系統時間為:"+ new java.util.Date().toLocaleString());

然後在瀏覽器中重新整理頁面幾次,Console中也相應的列印出系統時間幾次。

  • 最後我們分析一下Servlet是如何執行的?我們為什麼要在web.xml中添加上述的代碼呢?一是告訴用戶端,二是告訴Tomcat如何找我的資源,尋找的規則是:在servlet-mapping中根據url-pattern(其中‘/‘表示當前系統的根路徑(這裡是test)),找到servlet-name,然後在servlet中找跟他匹配的servlet-name,然後找到相應的servlet-class,如果發現其沒有執行個體化,就執行個體化它(其中的doGet處理用戶端的GET請求,doPost處理用戶端的POST請求,而通過瀏覽器訪問時全部使用的GET請求),立刻執行其doGet方法,doGet方法本身調用了process方法,執行後,伺服器返回的HTML資訊如下:
<HTML><HEAD><TITLE>My First Servlet</TITLE></HEAD><BODY><H1>Hello World</H1><br>2015-7-2 9:28:13</BODY></HTML>

瀏覽器解釋HTML,顯示出"

Hello World

2015-7-2 9:28:13"

這樣的結果。

需要注意的幾點:

  • servlet-mapping元素中的servlet-name必須和servlet元素中的servlet-name匹配,這是由它的尋找規則決定的。
  • servlet元素中的servlet-class必須是包名+類名。
  • url-pattern前面以‘/‘開頭,表示用戶端以什麼樣的url格式請求servlet,也可以改成"/abc",這樣在瀏覽其中需要訪問http://localhost:8080/test/abc。 

第二部分_搭建Java Web開發環境與配置Tomcat伺服器&JSP詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.