需要說明的是,其實工具的版本不是主要因素,所以我下面忽略版本。
你能搜到這篇文章,說明你已經知道怎么部署Tomcat,并運行自己的網頁了。
但是,我們知道,每次修改源文件,我們總得手工把文件copy到tomcat目錄里。這很麻煩,而且說不定你就亂了,忘記哪個要修改什么的。這對于調試非常不利。
所以,如果能把編輯和部署都在eclipse里面完成,那就省事多了。
要做到這一點,我們需要一個eclipse插件:Sysdeo。
?
插件的安裝不用多說了吧,下載后解壓到eclipse的plugins文件夾里。
然后需要做一點配置:
安裝完插件后,就能在Eclipse里面啟動和關閉tomcat了。
?
然后,這個插件很重要的一點是:為我們提供了創建項目的功能。
在file->new里面找到“Tomcat Project”的選項。
創建一個項目后,我們可以看到這樣的目錄結構:
可以發現,Servlet相關的類庫已經幫忙加載了。
里面比較重要的文件夾有:
WEB-INF:這個很熟悉吧,web.xml文件放在里面。
WEB-INF/src:要創建Servlet,只需要在這里建普通的java類就可以了。
work:jsp編譯后生成的.java文件,就放在這里。
?
首先,創建一個Servlet:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML><BODY>Hello world!</BODY></HTML>"); } }
然后創建web.xml并配置:
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app 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" version="2.4"> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/Info</url-pattern> </servlet-mapping> </web-app>
再創建一個jsp文件(邏輯有問題,勿深究):
NumberGuess.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>NumberGuess</title> </head> <body> <%@ page import="java.util.*" %> <%! int answer=0; %> <%! int numberGuesses=0; %> <% String guess=request.getParameter("guess"); if(guess==null) { %> Welcome to the Number Guess game.<p> <% answer=Math.abs(new Random().nextInt()%100)+1; numberGuesses=0; } else { int value=Integer.parseInt(guess); if(value==answer) { %> Congratulation! You got it.<br> And after just <%= numberGuesses %> tries.<p> Care to <a href="NumberGuess.jsp">try again</a>?<p> <% } else { %> Good guess, but nope. Try <% numberGuesses++; if(value<answer) { %> <b>higher.</b>.<p> <% } else if (value>answer) { %> <b>lower</b>.<p> <% } } } %> I'm thinking of a number between 1 and 100.<p> <form method=get action="NumberGuess.jsp"> What's your guess? <input type=text name=guess> <input type=submit value="Submit"> </form> </body> </html>
?
在eclipse里啟動Tomcat,然后分別在瀏覽器里敲入:
http://localhost:8080/nihao/Info
http://localhost:8080/nihao/NumberGuess.jsp
正常運行!bingo!
?
我們發現,整個操作過程中,我們并沒有把文件拷貝到Tomcat的工作目錄下。而且,就算eclipse關閉了,依然能跑,這是為什么?
通過觀察,發現在tomcat->conf->server.xml里面增加了這么一行:
<Context path="/nihao" reloadable="true" docBase="C:\Users\Administrator\Desktop\WorkSpace05\nihao" workDir="C:\Users\Administrator\Desktop\WorkSpace05\nihao\work" />
所以,是這個插件把tomcat的工作目錄重定向了,這樣很方便開發。
?
如果要重新加載項目,右鍵目錄樹->import->General->Existing Projects into Workspace->選擇項目
如果缺少包什么的,右鍵項目->Properties->Libraries->AddJars
Add External JARs就是把JDK壓縮一下ZIP加載下
Add Library.. 添加 JRE System Library
?