// 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 .

沒有留言:
張貼留言