電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋
大綱 1.Review 2.Frontpage基本教學示範 3.JSP簡介 4.Java觀念、語法簡介 5.SQL語法 6.範例展示
Review 1.Tomcat架設問題 2.路徑設定 在安裝好tomcat伺服器後為了使java功能順利使用, 還需要設定path與classpath的連結指定 說明:在系統內容→進階→環境變數→系統變數 →新增(1.變數名稱:classpath 變數值:C:\Program Files\Apache Tomcat4.0 \common\lib\servlet.jar;.; C:\j2sdk1.4.0_01\lib\tools.jar) 2.變數名稱:path 變數值:C:\j2sdk1.4.0_01\bin;C:\j2sdk1.4.0_01\lib;.;
Review 說明:
Review Form的功用,主要是宣告成後面的各個元素控制項(共七項),需要由哪個JSP來執行,以及其方式是如何。 一般來說格式如下: ex: <form action=“xxxx.jsp” method=“post”> html內容.. <input type=text name=text1 value=“123”> <input type=hidden name=hidden1 value=“電字商務”> </form> 則我們可以在某某jsp檔案裡,寫入程式去讀取name為text1的表單,而讀到的值為123 而可以去讀取名為hidden1的變數(hidden性質),而其值為文字”電子商務”
Frontpage基本教學示範 示範功能: 1.框架 2.置入表單按鈕 3.建立網頁連結
Frontpage基本教學示範 框架 1.先在檢視中 打開工作櫥窗 2.從工作櫥窗中 點選網頁範本 進行選擇
Frontpage基本教學示範 置入表單按鈕 1.點選插入→表單→選擇所要插入之表單 或是按鈕即可 2.表單與按鈕的屬性可由html標籤進行修改
Frontpage基本教學示範 建立連結網頁 1.將欲做成超連結的文字或是圖片,把游標移置其上 點選右鍵,選擇超連結 2.假設我要選擇的是由右下 角的框頁來顯示我的連結 可以在插入超連結表單中 點選目標圖文框來選擇 (預覽前須先儲存)
JSP概說 在過去的網頁技術裡,是將html標籤鑲入程式碼當中,也就是用程式語言來產生html標籤,這使得包括美工方面的工作也必須要交由程式設計師來建立;而從JSP誕生後,其方式恰好相反,而是將程式碼內建在html的網頁之中,使得程式設計師可以專注於功能上的設計,html方面的標籤美工,則可以交由專業的美工人員來進行設計。 而JSP的優點包括有同時支援scripting與組件式的動態內容;網頁是預先編譯的,有助於提升處理效率;可搭配servlet一起使用;以及完整的跨平台模式。
JSP基本語法 大部分的JSP語法是依據XML語言而來,而通盤的架構如下 <元素名稱 屬性名稱=屬性值> 元素本體 </元素名稱> 而元素的宣告必須存在於同一個JSP檔案之中 <%! Xx..xx %> 宣告的符號 <%=xx..xx %> 運算式的符號 <% xx..xx xx.xxxx %> 內建程式符號
JSP基本語法 <%,%>,’,” ,\,這些符號已經被JSP引擎看成是具有特定意義的符號 因此若是要在程式中顯示這些符號的話就必須使用escape方式也就是在符號內加入/。 <% <\% %> \%> ’ \’ ” \” \ \\
JSP預設 - out JSP是由Java所衍生而來,其Servlet詳細內容可在$TomcatHome%/work/Standalonelocalhost中尋得您目前的目錄。到目錄之後,即可看到相關的Java檔,內部Servlet如何將內容呈現到網頁上即可由此處得知。 out是JSP預設的物件,若要將資料列印出可藉由out呈現在網頁上,若遇跳脫字元則要將跳脫字元以「\」處理之。例如「“」為跳脫字元: <html> <body> "hihi1" <br> <% out.println("\"hihi2\""); %> </body> </html>
JSP預設 – request JSP在接收html的資料方面,預設了以“request”接收html傳送而來的資料。舉例如下: <form method=“post” action=“temp.jsp”> 請輸入資料<input type=“text” name=“haha”> <input type=“submit” value=“go”> </form> </html> 畫面如下:
JSP預設 – request conti. 而我們則可以使用JSP預設的request將text的haha之值抓取回來,並且列印出: <% String temp = request.getParameter(“haha”); out.println(temp); %> 列印後,畫面如下:
JSP讀取html變數 在JSP中要去讀取html的資料之寫法如下 string 變數名=request.getParameter(“text1“); 表示讀取名為text1的value值,而讀取後的型態為字串的型態 而若是html裡面有許多名為hidden1變數的不同資料,則可以使用陣列的方式來一次全部讀取 string bookname[ ]=request.getParameterValues(“hidden1”); 表示這個jsp程式會將html裡名字為hidden1的資料,全部存在bookname[ ]的陣列裡,而且陣列的長度會根據有幾筆資料來決定
JSP預設 - response JSP將資料回應給client端,可藉由JSP預設的response將資料傳送至client端。 舉例來說, ex: <% response.sendRedirect(“http://www.nthu.edu.tw”); %> 同學可以使用這個程式碼看看,其效果是轉址用。
Java觀念與語法介紹
Java基礎語法 由於JSP是由Java的Servlet衍化而來,所以JSP的語法自然與Java相同。故以下介紹Java基礎語法。 note: 許多人容易混淆,認為Java、Javascript是同一個language。但事實上,此兩者不但並沒有相關,更一步的說,Javascript的物件導向觀念與嚴謹度低於Java。
Java – 註解 註解的方便之處,在於易於說明一份文件的內容,而不影響文件的實質運作。 單行式註解 以「 // 」字元開頭,一直到該行最尾。 如: int i = 0; // i 的初始值指定為0 多行式註解 以「 /* 」字元起頭,一直到「 */ 」結束。有些程式設計師會使用額外的 * 使得註解更顯著。 如: /* * 這是多行註解其中一段。 */
Java – 識別子與保留字 (I) Java使用Unicode字元集,該字元集擁有許多ASCII沒有的字母與數字,識別子可以使用數字,但不能以數字開頭。以下是合法的識別子: i engine3 thisECommerceClass
Java – 識別子與保留字 (II) 識別子另外一個重要的限制是不能使用Java語言本擁有的關鍵字,這些保留字列舉如下:
Java – 基本資料型態(I) 。先Keep in Mind: 「資料型態」非「類別」!! 。boolean型態:只有兩種可能的值,用來表示boolean狀態。Java保留true與false兩個關鍵字來表示這兩個boolean值。
Java – 基本資料型態(II) 。char型態:如果需要在程式中加入字元,只要將字元放在單引號間: char refChar = ‘a’; 。String型態: String型態是一個類別,它不是Java語言的基本資料型態。String的寫法是在雙引號間輸入任意字元: String talk = “Hello, our teacher Amy~”;
Java – 基本資料型態(III) 。整數型態: Java的整數型態有byte、short、int與long,這四種型態的差別只在於他們所使用的位元數,以及他們能代表的數字範圍。 在本次專題中,我們只介紹int型態,其用法如下: int getChannel = 32; //注意沒有“”或‘’與char、String不同
Java – 運算子(I) Java有許運算子,因程式的運作,常常會依靠數字的運算來運作,故在此處介紹幾個常用的運算子。 。算數運算子 + (加法) – (減法) * (乘法) / (除法) % (求餘數)
Java – 運算子(II) 。比較運算子 相等== ex: (A == B) 相等運算子在A與B為相等的情況下,則會求出值true,如果不相等,則會求出false。 不等(!=) ex: (A != B) 不等運算子的運作方式剛好與相等運算子相反。在A與B不相等的情況下,則會求出值true,如果相等,則會求出false。
Java – 運算子(III) 。小於< ex: A<B 如果A小於B則會產生true
Java – 運算子(IV) 。boolean運算子 正如前面所看到的,比較運算子會產生boolean值,我們可以運用boolean運算子將多個表示式組合成衣個較為複雜的表示式,這些粗略的提及大概有:
Java – 運算子(V) 條件式 AND(&&) ex: A==B && C==D 在邏輯概念上,類似「交集」 例如A與B相等(其值為true) 且 C與D相等(其值為true) 則結果為true 條件式OR(||) ex: A==B || C==D 在邏輯概念上,類似「聯集」 例如A與B相等(其值為true) 或 C與D相等(其值為true) 則結果為true
Java – 敘述 if 。if/else、else if敘述 if敘述是一個最基本的控制流程敘述。If敘述需要有一個表示式及敘述,如果該表示式為false,則Java compiler便會忽略該敘述不去執行,如: if(username==null) { //若username為null username = “Ken Lin”; //則定義username為“Ken Lin” }
Java – 敘述 if conti. 有時候可以視情形在搭配else關鍵字一起用。 搭配時,if(expression) 括弧中的第一個值,如果為true,則會執行第一個敘述,否則第二個敘述else就會被執行。 若需要更多敘述則可以再加上else if敘述使得敘述更清晰,如:
Java – 敘述 if conti. if(school == “nthu”) { out.println(“Welcome back.”); } else if (school == “nctu”) { out.println(“Hi”); } else { out.println(“hello~”); }
Java – 敘述 while 。while敘述就好像if敘述一樣,是Java基本流程控制敘述。While敘述則是一個基本的敘述讓Java能重複執行某些動作,其語法如下: while (expression) { statement; } 若expression得到的為true,while迴圈便會不斷執行,直到原先的expression為false才會終止執行。
Java – 敘述 while conti. 舉例來說以下的敘述則會在網頁上列印出0~9 int count = 0; while (count <10) { out.println(count); count++; //其意思與count = count + 1同 }
Java – 敘述 for for的功用如同while,是用來執行迴圈的時候使用,其格式如下: 而其邏輯的架構如圖:
SQL簡單語法
SQL語法-select 選取動作: select (全部or特定欄位) from 資料表。 而在後面可以加上四種方式 1. where + 條件 select * from test1 where year=1997 選取test1資料表內年份等於1997的全部欄位資料 2.group by + 條件 select* from test1 group by publisher 選取test1資料表內屬於出版商的所有欄位資料 3.having + 條件 select title from test1 having year>1997 選取test1資料表中年份>1997的title欄位資料 4.order by + 遞增或遞減 ……order by price desc 表示根據價格遞減的方式排列 沒有指定則會根據內建的遞增方式排列
SQL語法-select (conti.) 在上述條件式中,可以用“and” “or” “not” 來對多種條件式作連結
SQL語法-insert 寫入動作: insert into 資料表名稱 (欄位名稱,欄位名稱,…) values(欄位值,欄位值,…) 但在寫入access資料表中時,則無法指定欄位名稱,而會按照所輸入的values(欄位值,欄位值,…)之順序依次輸入 ex:insert into book values(22,25,56,…) 寫入22 25 56 …等數值至book資料表內
SQL語法-delete 使用刪除指令能夠移除關聯的列 語法為:delet from “資料表名” where 條件
SQL語法-update 有時需要輸入大筆的資料,資料中可能有新的資料或是舊的需要更新的資料,在此就可以利用update功能來進行 update “資料表名” set “異動資料” where 條件 ex:update book set price=60 where id=‘b21’ 將book資料表中之id=b21的price改為60
JSP - SQL聯結資料庫 要在JSP裡面寫入聯結資料庫的語法如下 Connection con=null; try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);//載入驅動程式 con=DriverManager.getConnection(“jdbc:odbc:資料庫名”,””,””) //建立一個與資料庫連結的物件con Statement stmt=con.createStatement();//透過con連結,建立一個SQL的敘述物件 ResultSet rs=stmt.execute (“select* from 資料表名”) //執行SQL敘述,從資料表中選取所有的紀錄,並將選出的紀錄儲存於名字為 rs的 ResultSet物件中 }
JSP - SQL聯結資料庫 若是要讀出資料欄名為”ID”,型態為整數的資料時 rs.getInt(“ID”) 若是要讀出資料欄名為”desc”,型態為字串的資料時 rs.getString(“desc”)
JSP - SQL資料寫入資料庫 以Access來說 String sql=〝insert into 資料表名 values( a,b,c)〞 若a,為字串的型態,則必須要改為’a’,加上兩個單引號 而若是a為變數型態,由於sql式宣告成字串的型態,所以必須改為 String sql=〝insert into 資料表名 values( ‘ 〞+a+〝’);〞;
範例展示 請稍後…… 超連結
最後…………… 祝大家好運 !!-_-a