// Filename : HelloWorld.java // Description : This servlet merely says hello! import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>Hello, Cruel World!</title></head>"); out.println("<body>"); out.println("<h1>Hello, Cruel World !</h1>"); out.println("This is my first servlet."); out.println("</body>"); }// end doGet }///:~
二、編譯HelloWorld.java
我把HelloWorld.java放在桌面,先用cd指令至它的路徑
$ cd /Users/xanxus/Desktop $ javac HelloWorld.java -classpath /Users/xanxus/apache-tomcat-8.5.11/lib/servlet-api.jar因為編譯Servlet程式需用到servlet-api.jar這個檔,所以-classpath需指到此jar所在位置,編譯完的class檔會跟HelloWorld.java同目錄
三、創造標準的目錄結構
找到Tomcat底下的webapps資料夾,分別創造以下目錄:
webapps/MyFirst
webapps/MyFirst/WEB-INF
webapps/MyFirst/WEB-INF/classes
webapps/MyFirst/WEB-INF/lib
webapps/MyFirst/WEB-INF/web.xml
web.xml內容如下:
四、啟動Tomcat
$ cd /Users/xanxus/apache-tomcat-8.5.11/bin
$ ./catalina.sh start
打開瀏覽器,網址打http://127.0.0.1:8080/MyFirst/HelloWorld
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> </web-app>再把剛剛編譯完的HelloWorld.class放到webapps/MyFirst/WEB-INF/classes底下
四、啟動Tomcat
$ cd /Users/xanxus/apache-tomcat-8.5.11/bin
$ ./catalina.sh start
打開瀏覽器,網址打http://127.0.0.1:8080/MyFirst/HelloWorld
這是最簡單手動部署Servlet的方式
補充:
如果class檔是在數個樹狀目錄下,那web.xml的<servlet-class>如何改?
假設HelloWorld.class在apache-tomcat-8.5.11/webapps/Ydd/WEB-INF/classes/cc/jxanxus/HelloWorld.class 這種目錄
那首先我的HelloWorld.java的package 要這樣寫:
package cc.jxanxus;
並且web.xml的<servlet-class>要改成:
<servlet-class>cc.jxanxus.HelloWorld</servlet-class>
因為如果設定的路徑不對,可是抓不到檔案的,所以這很重要。
補充:
下面加個-d . 指令可以幫你產生套件的目錄結構,就不用自己慢慢建資料夾了
javac *.java -classpath /Users/xanxus/apache-tomcat-8.5.11/lib/servlet-api.jar -d .
沒有留言:
張貼留言