javascript
第二部分_搭建Java Web开发环境与配置Tomcat服务器JSP详解
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,顯示出"
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。?
轉載于:https://www.cnblogs.com/Code-Rush/p/4615056.html
總結
以上是生活随笔為你收集整理的第二部分_搭建Java Web开发环境与配置Tomcat服务器JSP详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java魔法堂:初探MessageFor
- 下一篇: Array()数组