Download presentation
Presentation is loading. Please wait.
1
企業建置前端 Java Server Page 程式設計 井民全
2
outline JSP Container 網頁表單的處理 瀏覽器 IE Netscape JSP page Web 伺服器 (Apache 或 IIS) 產生 Servlet 程 式碼 編譯 Servlet 程 式碼 1. Request 4. Response JSP 執行的過程
3
JSP Container 就是能夠執行 JSP 的伺服器 JSP Container List NamePriceDescript Apache Tomcat 3.2.1 Free 不支援 EJB Inprise Application Server $8500/CPUJbuilder 完全整合 Caucho Resin 2.1 開發或個人使用免費 所有的 container: http://www.flashline.com/Components/appservermatrix.jsp
4
Caucho Resin 2.1 網址 : http://www.caucho.com/download/index.xtp http://www.caucho.com/download/index.xtp HTTP/1.1 Servlets JSP Processing Load Balancing 最重要的是, 可以與 IIS 整合
5
Resin Installation 安裝 IIS 套件 in W2000 解壓縮 resin-ee-2.1.2.zip 到 c:\ 會在 c:\ 建立 resin-ee-2.1.2 目錄 設定 執行 c:\ resin-ee-2.1.2 \bin\ setup.exe 指定 resin home 指定 c:\inetpub\scirpts
6
Resin Installation 指定 IIS Server: 設定 C:\resin-ee-2.1.2\conf\ resin.conf 執行 : C:\resin-ee-2.1.2\bin\ httpd.exe C:\inetpub\wwwroot
7
Test 建立 test.jsp 放到 c:\Inetpub\wwwroot 2 + 2 = 鍵入 http://localhost/test.jsp
8
Scripting Element Declarations <%! 宣告要用到的類別或變數 %> Scriptlets <% out.println( “ Hello World ” ); %> Expressions ( 運算式 ) <%= 1+1 %> 注意 : 沒有分號 注意分號
9
Declarations 宣告變數 宣告物件變數 <%! Circle a = new Cirlce(2,0); %> 定義 function <%! public String f(int I) { if ( I < 3 ) return “ I 小於三 ” ; } %> 可以定義 class 嗎 ? <%! class Person { String Name; public Person(){ Name= “ Guest ” ; } %> <% Person Tom=new Person(); %>
10
Scriptlets 可包含任何有效程式片斷 主程式的撰寫區, 只要合乎 Java 語法即 可 <% 起始 程式片斷 %> 結束
11
Scriptlets 範例 <% String name=null; if( request.getParameter( “ name ” ) == null){ %> 沒有輸入 name (html 的部分 ) <% } else out.println( “ Hi …. ” + name);
12
1+ … +100 的範例 <% for (I=0; I<= 100; I++) Sum+=I; %> 宣告變數 Scriptlets Html 的部分 試試看 !
13
Resin 設定 設定為 NTServer: 當系統 reboot 時, Resin 自動啟動 dos> resin-ee-2.1.2/bin/httpd -install 取消 : dos> resin-ee-2.1.2/bin/httpd -remove
14
Resin 設定 與 Jbuilder 整合 Copy resin-jbuilder.jar 到 Jbuilder lib/ext 目錄.resin-jbuilder.jar 參考資料 :http://www.caucho.com/resin/ref/ide-jbuilder.xtp
15
參考資料 http://www.jsptw.com/ http://www.jsptw.com/ Resin 操作參考 : http://www.caucho.com/resin/java_tut/index.xtp
16
網頁表單的處理 參考資料 : JavaServer Pages 技術手冊
17
表單的功能 : 讓使用者透過網頁輸入資料 基本的傳送方法 Get Post http:// URL 位址 ? Name1=Value1 & Name2=Value2 如何利用表單傳送資料 控制項 Name 與 Value 和 URL 位址分開傳送
18
簡單的 Form 選擇傳送的方法選擇傳送的地點 Test.htm <% String Name=null; Name=request.getParameter( “ name ” ); out.println( “ 你輸入的內容 “ +name); %> Test.jsp
19
常見的輸入型態 本文輸入型態 (Text) 密碼 (Password) 選項按鈕 (Radio) 核取方塊 (Check) 下拉選項 (Select) 檔案輸入 (File) 本文區輸入 (Textarea)
20
本文輸入型態 單行輸入 屬性 Name 名稱 MaxLength 允許輸入最大字數 Size 欄位寬度 Value 預設值 範例 :
21
密碼輸入型態 遮掩使用者所輸入的資料. ( 沒有編碼 ) 屬性 Name 名稱 ( 與 Text 相同 ) MaxLength 允許輸入最大字數 Size 欄位寬度 Value 預設值 範例 :
22
選項按鈕 讓使用者可以選擇 ( 單選 ) 屬性 Name 群組名稱 Value 傳到對方網頁的值 Checked 預設被選到 範例 : 男 女 第三性公關
23
核取方塊 可多重選擇 屬性 興趣 :   閱讀 打電動 旅行 同選項方塊 範例 :
24
下拉選項 所佔空間較小, 廣被大家使用 10 – 20 20 – 30 30 – 40 Name 選項控制項名稱 Option Value 傳到對方網頁的值 Selected 預設被選到 Size 欄位大小
25
利用 JSP 讀取表單傳來的資料
26
綜合範例 姓名 :   密碼 :   性別 :   Select 控制項 Check Box 控制項 檔名 : Form.htm 傳送按鈕清除按鈕
27
年齡 :   10 - 20 20 - 30 興趣 :   閱讀 打電動 Select 控制項 Check Box 控制項 回上一頁
28
接收資料的 JSP 端 <% String Name=request.getParameter ("Name"); String Password = request.getParameter( “ Password ” ); String Sex=request.getParameter( “ Sex ” ); String Old=request.getParameter( “ Old ” ); String [] Habit=request.getParameterValues ( “ Habit ” ); %> 姓名 :  進一步的程式處理 (push) 檔名 : Form.jsp 下一頁
29
<% if(Sex.equals( “ Man ” ) out.println( “ 男 ” ); else out.pritnln( “ 女 ” ); %> 進一步的程式處理 回上一頁
30
測試 ( 最簡單 ) 將專案的 defaultroot 中的所有內容 Copy -> www root 中即可 注意 : 要先把 Jbuilder 正在 debug 的專案停下來
31
測試 Step 1: 複製整個 jsp 專案到 c:\test Step 2: 複製 Form.htm 到 defaultroot 目錄中 在 IIS 中加入虛擬目錄 test Step 3: 虛擬目錄連到 defaultroot 中 設定 Resin 目錄 mapping Step 4: 編輯 resin.conf 加入 Restart the Resin <path-mapping url-pattern='/test/*' real-path='C:\test\Form\defaultroot'/>
32
完整程式範例 : Form
33
檔案上傳 允許使用者將自己的檔案上傳到伺服器 傳送檔案的編碼方式 規格 : http://www.ietf.org/rfc/rfc1867.txt 伺服器不能直接用 request.getParameter() 取得檔案資料.
34
利用 O ’ Reilly 的 MultipartRequest 提供原始碼 隨時都在 update 下載網址 : http://www.servlets.com/cos/index.html http://www.servlets.com/cos/index.html 安裝 Step 1: 解壓縮 cos-27May2002.zip cos-27May2002.zip Step 2: 把 cos.jar Resin 目錄下的 lib 中 cos.jar C:\jakarta-tomcat-4.1.12\common\lib (Tomcat) Step 3: 重新啟動 Resin (bin/httpd) 參考資料 : http://www.servlets.com/cos/index.html http://www.caucho.com/support/resin-interest/9912/0123.html
35
Html 檔的撰寫 <Form Name= “ Form1 ” ENCType= “ multipart/form-data ” Method= “ Post ” Action= “ UploadFile.jsp ” > 上傳檔案 1: 控制項的名稱控制項大小最大可輸入大小 傳送按鈕清除按鈕 檔名 : UpLoadFile.htm
36
Jsp 檔撰寫 – JBuilder 設定 Step 1: 利用 Jbuilder 建立一個 JSP 專案 Step 2: 建立一個新的 JSP 檔 Step 3: 設定 Library 加入新的 library 1 2 選擇 cos.jar 所在的目錄 檔名 : UpLoadFile.jsp
37
Jsp 檔撰寫 <% %> MultipartRequest multi=new MultipartRequest (request, "c:\\Test", 5*1024*1024); 讀取資料物件 檔案放置位置 限制檔案大小 java.util.Enumeration FileName=multi. getFileNames (); 取出控制項的名稱 取出檔案名稱 下一頁
38
while(FileName.hasMoreElements()){ String Name=(String) FileName.nextElement(); String SystemFileName=multi.getFilesystemName (Name); out.println(SystemFileName+" "); } 取出檔案名稱 回上一頁
39
安裝與測試 Step 1: 把 Jsp project c:\test Step 2: 把 UpLoadFile.htm Jsp Project \defaultroot Step 3: 設定 IIS 虛擬目錄 TEST c:\test Step 4: 設定 Resin resin.conf 對應 IIS 目錄 Step 5: 重新啟動 Resin <path-mapping url-pattern='/test/*' real-path='C:\test\'/>
40
完整程式範例 : UpLoadFilename
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.