Presentation is loading. Please wait.

Presentation is loading. Please wait.

企業建置前端 Java Server Page 程式設計 井民全. outline  JSP Container  網頁表單的處理 瀏覽器 IE Netscape JSP page Web 伺服器 (Apache 或 IIS) 產生 Servlet 程 式碼 編譯 Servlet 程 式碼 1.

Similar presentations


Presentation on theme: "企業建置前端 Java Server Page 程式設計 井民全. outline  JSP Container  網頁表單的處理 瀏覽器 IE Netscape JSP page Web 伺服器 (Apache 或 IIS) 產生 Servlet 程 式碼 編譯 Servlet 程 式碼 1."— Presentation transcript:

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 核取方塊  可多重選擇  屬性 興趣 : &nbsp 閱讀 打電動 旅行 同選項方塊 範例 :

24 下拉選項  所佔空間較小, 廣被大家使用 10 – 20 20 – 30 30 – 40 Name 選項控制項名稱 Option Value 傳到對方網頁的值 Selected 預設被選到 Size 欄位大小

25 利用 JSP 讀取表單傳來的資料

26 綜合範例 姓名 : &nbsp 密碼 : &nbsp 性別 : &nbsp Select 控制項 Check Box 控制項 檔名 : Form.htm 傳送按鈕清除按鈕

27 年齡 : &nbsp 10 - 20 20 - 30 興趣 : &nbsp 閱讀 打電動 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 ” ); %> 姓名 :&nbsp 進一步的程式處理 (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


Download ppt "企業建置前端 Java Server Page 程式設計 井民全. outline  JSP Container  網頁表單的處理 瀏覽器 IE Netscape JSP page Web 伺服器 (Apache 或 IIS) 產生 Servlet 程 式碼 編譯 Servlet 程 式碼 1."

Similar presentations


Ads by Google