{{{ #!html
jsp + servlet + javabean
教材1
}}} [[PageOutline]] 本篇為此書第二章的實做練習 * [http://secuse.nchc.org.tw/jspservlet/jspservlet%e5%88%9d%e9%9a%8e.pdf 下載 pdf 手冊][[BR]] = 零. 下載資源 = == 1.A 用 virtualbox 虛擬機器 == [http://secuse.nchc.org.tw/jspservlet/u1004.vdi 下載 virtualbox 的硬碟檔] * 此硬碟檔為ubuntu 10.04 版本,已經調整好教材,請用virtualbox 3.2.2 以上版本掛載 == 1.B 自行下載資源 == 1. [http://secuse.nchc.org.tw/jspservlet/tomcat-6.0.26.tar.gz 下載tomcat 6.5] 2. [http://secuse.nchc.org.tw/jspservlet/eclipse-SDK-3.5.2-linux-gtk.tar.gz 下載 eclipse 3.5 linux版] = 範例一 = * 2.1.1~ 2.1.3 的範例 (p2-1~p2-10) == 2.1 建立目錄 == 已將tomcat 安裝於 /opt/tomcat/ 目錄下 {{{ cd /opt/tomcat/webapps/ mkdir -p /opt/tomcat/webapps/servlet1/WEB-INF/classes mkdir /opt/tomcat/webapps/servlet1/WEB-INF/lib }}} == 2.2 第一個程式:HelloServlet.java == {{{ cd /opt/tomcat/webapps/servlet1/WEB-INF/classes gedit HelloServlet.java }}} {{{ #!java 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 HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String name = request.getParameter("name"); out.println(""); out.println(""); out.println("Hello Servlet"); out.println(""); out.println(""); out.println("

Hello! " + name + " !

"); out.println(""); out.println(""); out.close(); } } }}} == 2.3 編譯:HelloServlet.java檔 == {{{ cd /opt/tomcat/webapps/servlet1/WEB-INF/classes javac -classpath /opt/tomcat/lib/servlet-api.jar ./HelloServlet.java }}} == 2.4 製作佈署描述檔:web.xml == {{{ cd /opt/tomcat/webapps/servlet1/WEB-INF/ gedit web.xml }}} {{{ #!xml HelloServlet HelloServlet HelloServlet /hello.do }}} == 2.5 啟動web容器:tomcat == {{{ cd /opt/tomcat bin/startup.sh }}} == 2.6 用瀏覽器測試 == [http://localhost:8080/servlet1/hello.do?name=caterpillar] ps: '''?name=caterpillar''' 可以改成你的名子來測試是否成功 ------------ == 練習 == 如果程式碼的第一行多了package宣告,要如何編譯執行 {{{ #!java package tw.org.nchc.opsrc; #其他相同省略~~~ }}} = 範例二 = * 2.1.4 的範例 (p2-10 ~ p2-11) == 2.1 管理網頁帳號 == {{{ gedit /opt/tomcat/conf/web.xml }}} {{{ #!xml }}} == 2.2 封裝成war檔 == {{{ cd /opt/tomcat/webapps jar cvf ~/servlet1.war servlet1/* }}} 刪除/opt/tomcat/webapps/servlet1/ 整個專案,再重開tomcat {{{ rm -rf /opt/tomcat/webapps/servlet1/ /opt/tomcat/bin/shutdown.sh /opt/tomcat/bin/startup.sh }}} 先開啟[http://localhost:8080/servlet1/hello.do?name=caterpillar] 網頁錯誤(因為已經被移除掉了) == 2.3 用管理頁面佈署 war 檔 == [http://localhost:8080/manager/html/list] 佈署~/servlet1.war檔(圖形介面難以文字描述) 開啟[http://localhost:8080/servlet1/hello.do?name=caterpillar] 有看到範例一的網頁即完成 == 練習 == ,將專案建立、開啟、停止、移除 = 範例三 = * 2.2 節 (p2-11~p2-20)