Version 14 (modified by waue, 15 years ago) (diff) |
---|
JSP 筆記
一、安裝
1.1 安裝
- 注意:
大部分的使用者都不建議用apt-get 安裝tomcat 因此建議用tarball方式解壓縮
- 下載:
- 安裝:
sudo mv ~/Desktop/apache-tomcat-6*.gz /opt/ cd /opt sudo tar -zxvf apache-tomcat-6*.gz sudo mv apache-tomcat-6* tomcat sudo chown -R `whoami`:`whoami` tomcat
1.2 bootstrap
若要系統開機就載入tomcat
cd /opt/tomcat/bin tar xvfz jsvc.tar.gz cd jsvc-src autoconf ./configure make cp jsvc .. cd /opt/tomcat/ ./bin/jsvc -cp ./bin/bootstrap.jar -outfile ./logs/catalina.out -errfile ./logs/catalina.err org.apache.catalina.startup.Bootstrap
1.3 啟動停止tomcat
建立 /etc/init.d/tomcat ,內容為:
#! /bin/sh PATH=$PATH:/opt/tomcat/bin do_start () { /opt/tomcat/bin/startup.sh } do_stop () { /opt/tomcat/bin/shutdown.sh } case "$1" in start) do_start ;; restart|reload|force-reload) do_stop do_start ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac
- 使用方法:
- 開啟 /etc/init.d/tomcat start
- 關閉 /etc/init.d/tomcat stop
二、 Hello World
2.1 撰寫 hello.jsp
cd /opt/tomcat/webapps/ROOT/ mkdir test cd test touch hello.jsp chmod 755 hello.jsp
hello.jsp 的內容為
<html> <head> <title> Hello World </title> </head> <body> <% String s = "Eric"; %> <h1>Hello <%=s%></h1> </body> </html>
/etc/init.d/tomcat restart
三、 引入war檔
3.1 使用war
下載 sample.war到
/opt/tomcat/webapps/
重新啟動tomcat
/etc/init.d/tomcat restart
- 注意:
- sample.war 檔 放到/opt/tomcat/webapps/ 下,tomcat會動解開webapps下的war成該目錄資料夾,此時在網址內打該資料夾名稱
- test/test.jsp卻是放在/opt/tomcat/webapps/ROOT下,
- 若放了war檔載webapps內,重新啟動tomcat,就會看到被解開的資料夾在 webapps內
3.2 sample.war的範例結構
當解開sample.war檔,我們可以看到此目錄結構
META-INF 放MANIFEST.MF的目錄 ,用jar打包通常會有此資料夾 index.html 主頁,包含jps與servlet 的連結 images 放圖片的目錄 hello.jsp 此頁為jsp檔 ps1 WEB-INF servlet 的目錄 ps2
- ps1: hello.jsp 為單一檔案,大部分的內容都是html的語法,jsp code僅為
<%= new String("Hello!") %>
- ps2:
servlet的內容較為複雜,因此WEB-INF的資料夾下還有目錄結構:
檔案 web.xml servlet的設定檔 資料夾 classes 放class檔 資料夾 lib 放函式庫
web.xml的內容為
<web-app> <display-name>Hello, World Application</display-name> <description> 標題 </description> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>mypackage.Hello</servlet-class> <description> 意指檔案完整路徑為 WEB-INF/classes/mypackage/Hello.class </description> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> <description> 意指瀏覽器所見目錄為http://localhost:8080/sample/hello </description> </servlet-mapping> </web-app>