freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

動(dòng)態(tài)網(wǎng)頁技術(shù)ppt課件(2)-閱讀頁

2025-05-17 12:08本頁面
  

【正文】 JavaBean ?前面所編寫的 jsp頁面中混合了 HTML代碼和 java代碼,頁面顯示和業(yè)務(wù)邏輯混合在一起可讀性和可維護(hù)性都比較差 ?為了分離頁面的 HTML代碼和 Java代碼,我們單獨(dú)編寫一個(gè)類來封裝頁面的業(yè)務(wù)邏輯,在頁面中調(diào)用該類的方法即可完成所需的功能 ?這種封裝業(yè)務(wù)邏輯的類就是 JavaBean組件 JavaBean的定義 ?JavaBean組件本質(zhì)上就是一個(gè)類,只不過這個(gè)類需要遵循一些編碼的約定 ?JavaBean遵循的規(guī)范: ? 它是一個(gè)公開的 public類 ? 它有一個(gè)默認(rèn)的構(gòu)造方法,也就是不帶參數(shù)的構(gòu)造方法(在實(shí)例化 JavaBean對象時(shí),需要調(diào)用默認(rèn)的構(gòu)造方法) ? 它提供 setXXX()方法和 getXXX()方法來讓外部程序設(shè)置和獲取 JavaBean的屬性。為了讓外部程序能夠知道 JavaBean提供了那些屬性,JavaBean的編寫者必須遵循標(biāo)準(zhǔn)的命名方式 ?例子: 一個(gè) String 類型的 name屬性對應(yīng)的方法: public String getName() public void setName(String name) ?為每一個(gè)屬性添加一個(gè) get和 set方法,其中屬性名字的第一個(gè)字母大寫,然后在名字前面加上“ get”和“ set” ?只有 get方法則是只讀屬性,只有 set方法則是可寫屬性,兩者都有則是可讀可寫屬性 public class Simplebean { private String bookname = null。 public String getBookname() {return bookname。} public double getBookprice() {return bookprice。} } JSP 標(biāo)準(zhǔn)動(dòng)作 ?JSP 標(biāo)準(zhǔn)動(dòng)作包括: JSP 標(biāo)準(zhǔn)動(dòng)作 jsp:useBean jsp:setProperty jsp:getProperty jsp:include jsp:forward ?可以看出, JSP頁面和 JavaBean組件都是獨(dú)立的對象。各種范圍 選項(xiàng)如下: 范圍 描述 Page Bean 只能在使用頁面時(shí)使用。 public class Student { private String name。 public String getName() { return name。} public int getAge() { return age。} } % page pageEncoding=GB2312% HTML BODY jsp:useBean id=student class= scope=session / %(18)。 % p名字是 :%(())。 %/p /BODY /HTML jsp:setProperty動(dòng)作 ? jsp:setProperty動(dòng)作和 jsp:useBean一起使用,使用Bean中的 setXXX()方法設(shè)置 JavaBean對象的屬性。如果值是 *,標(biāo)簽就會(huì)在請求對象中查找所有的請求參數(shù),看參數(shù)的名字和 Bean屬性的名字是否相同,如果找到匹配的參數(shù)和屬性,就會(huì)按照正確的類型(自動(dòng)進(jìn)行類型轉(zhuǎn)換)將參數(shù)的值設(shè)置為屬性的值 jsp:setProperty元素各屬性含義 jsp:setProperty name=“beanName property= “propertyName” value=“%=experssion%”/ jsp:setProperty動(dòng)作 param 指定請求對象中參數(shù)的名字。在設(shè)置 Bean的屬性時(shí),如果請求參數(shù)的名字和 Bean屬性的名字不同,可以用 param來指定參數(shù)的名字。在 jsp:setProperty元素中,不能同時(shí)出現(xiàn) param和 value屬性 jsp:getProperty動(dòng)作 ?用來訪問一個(gè) Bean的屬性,并把屬性的值轉(zhuǎn)化成一個(gè) String,然后將其輸出到頁面。 ? 開發(fā)思路 采取 HTML+ JSP+ JavaBean模式: HTML網(wǎng)頁“ ”用于接收用戶輸入的當(dāng)月收入和當(dāng)?shù)仄鹫黝~, JSP網(wǎng)頁“ ”用來接收“ ”傳來的參數(shù),并傳入 JavaBean中,計(jì)算應(yīng)繳所得稅,然后顯示出來。 ? 個(gè)人所得稅的計(jì)算公式(根據(jù)實(shí)際情況可能有所不同): 當(dāng)月應(yīng)繳個(gè)人所得稅 =(當(dāng)月總收入-當(dāng)?shù)貍€(gè)人所得稅起征額) 適用稅率-速算扣除數(shù) (由于每個(gè)地方的所得稅起征額不盡相同,所以在JavaBean中,除了有一個(gè)屬性表示當(dāng)月總收入之外,還有一個(gè)屬性表示當(dāng)?shù)貍€(gè)人所得稅起征額。 ? 它可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它的功能是由一系列的類和接口來完成的。 JDBC簡介 JDBC的框架結(jié)構(gòu) ? JDBC API 供程序員調(diào)用的接口與類,集 成在 ,如: ? DriverManager類 ? Connection接口 ? Statement接口 ? ResultSet接口 ? DriverManager 載入各種不同的 JDBC驅(qū)動(dòng) ? JDBC 驅(qū)動(dòng) 負(fù)責(zé)連接各種不同的數(shù)據(jù)庫 Sql Server MySQL JDBC API JDBC 驅(qū)動(dòng)程序管理器 JDBC 驅(qū)動(dòng) JDBC 驅(qū)動(dòng) Java 應(yīng)用程序 接口或類名稱 說 明 DriverManager 驅(qū)動(dòng)程序管理類,用于加載和卸載各種驅(qū)動(dòng)程序,并建立與數(shù)據(jù)庫的連接 Driver 該接口代表 JDBC驅(qū)動(dòng)程序,由驅(qū)動(dòng)程序供應(yīng)商實(shí)現(xiàn) Connection 連接對象,用于與數(shù)據(jù)庫取得連接 Statement 語句對象,用于執(zhí)行 SQL語句,并將數(shù)據(jù)檢索到結(jié)果集( ResultSet)對象中 ResultSet 結(jié)果集對象,包含執(zhí)行 SQL語句后返回的數(shù)據(jù)的集合 SQLException 數(shù)據(jù)庫異常類,是其它 JDBC異常類的根類,絕大部分對數(shù)據(jù)庫進(jìn)行操作的方法都有可能拋出該異常 訪問數(shù)據(jù)庫的步驟 Connection DriverManager Statement ResultSet 加載 JDBC驅(qū)動(dòng)程序 創(chuàng)建數(shù)據(jù)庫連接,生成 Connection對象 創(chuàng)建 Statement對象,執(zhí)行 SQL語句 使用 ResultSet對象接收結(jié)果集,處理結(jié)果集 關(guān)閉上述對象 服務(wù)器 數(shù)據(jù)庫服務(wù)器 1 2 3 4 ? 確定數(shù)據(jù)庫類型,加載與數(shù)據(jù)庫相匹配的驅(qū)動(dòng)程序,通常有 2種方式: ? 在個(gè)人開發(fā)與測試中,可以使用 JDBCODBC橋連方式。 ? 不論采用哪種驅(qū)動(dòng)方式,在程序中對數(shù)據(jù)庫的操作方式基本相同,只是加載不同的驅(qū)動(dòng)程序即可。 ? 編程,使用 ()進(jìn)行裝載,向驅(qū)動(dòng)管理器注冊。 演示:配置 ODBC數(shù)據(jù)源 JDBCODBC橋驅(qū)動(dòng)類的完全限定類名 ? 由 JDBC驅(qū)動(dòng)程序直接訪問數(shù)據(jù)庫,可以避免橋接方式的缺陷。 ? 優(yōu)點(diǎn):匹配性能更好,快速而且可跨平臺(tái)。 純 Java驅(qū)動(dòng)程序 JDBC 驅(qū)動(dòng) Java 應(yīng)用程序 JDBC API DB Server ? 純 JAVA驅(qū)動(dòng)程序加載步驟: ? 下載數(shù)據(jù)庫廠商提供的驅(qū)動(dòng)程序包 ? 將驅(qū)動(dòng)程序包引入到環(huán)境變量中 ? 編程,加載驅(qū)動(dòng)程序 ( )。 MySQL數(shù)據(jù)庫驅(qū)動(dòng)類的完全限定類名 純 Java驅(qū)動(dòng)程序 ? 創(chuàng)建數(shù)據(jù)庫的連接,首先要獲得數(shù)據(jù)庫的 JDBC URL地址, JDBC使用和網(wǎng)絡(luò) URL類似的語法來描述數(shù)據(jù)庫。 static Connection getConnection (String url) throws SQLException 參數(shù) url是連接字符串,成功連接到數(shù)據(jù)庫返回 Connection對象。 Connection conn=(DBURL)。 ? Statement對象提供了三種執(zhí)行 SQL語句的方法: ? executeQuery(): 用于產(chǎn)生單個(gè)結(jié)果集的 sql,如 select語句 ? executeUpdate: 用于執(zhí)行 insert、 delete、 update、 create table、 drop table等 ? execute(): 用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語句,多數(shù)程序員不會(huì)需要該高級功能。 String SQL=select * from user。 處理結(jié)果集 ? JDBC通過 ResultSet對象接收結(jié)果集。結(jié)果集類似于數(shù)據(jù)庫中的表,因此需要一個(gè)指針逐行讀取數(shù)據(jù),這個(gè)指針被稱為游標(biāo)。 方 法 原 型 說 明 boolean next() throws SQLException 將光標(biāo)從當(dāng)前位置向前移一行 getXxx(int columnIndex) throws SQLException Xxx是數(shù)據(jù)類型,獲取結(jié)果集中指定列的值,列從 1開始。 while(()) {((1)+\t)。 ((3)+\t)。如果想要讀取結(jié)果集中任意一行,則必須創(chuàng)建一個(gè)可滾動(dòng)顯示的結(jié)果集。 first()、 last()、 beforefirst()、 afterlast()、previous()、 absolute(int row)、 relative()。 ? 當(dāng)對數(shù)據(jù)庫的操作結(jié)束后,應(yīng)當(dāng)將所有已經(jīng)被打開的資源關(guān)閉。 ? 方法原型都是: void close() throws SQLException,如: ()。 //關(guān)閉 Statement對象 ()。 ? 注意關(guān)閉的順序,最后打開的資源最先關(guān)閉,最先打開的資源最后關(guān)閉。 } catch (ClassNotFoundException e) { (無法找到驅(qū)動(dòng)類 )。 Statement stmt = ()。 while (()) { int x = (a)。 float f = (c)。 } catch (SQLException e) { ()。 ? 通過 SQL語句更新。首先要?jiǎng)?chuàng)建一個(gè)可更新的結(jié)果集。 Statement stmt=(L_SENSITIVE,)。 方 法 原 型 說 明 PreparedStatement prepareStatement(String sql) throws SQLException 參數(shù) sql是要執(zhí)行的 SQL語句,根據(jù)指定的 SQL語句創(chuàng)建PrepareStatement對象,有可能拋異常,必須捕捉 使用預(yù)編譯 SQL語句 ? 包含在 PreparedStatement對象中的 SQL語句可以帶有一個(gè)或多個(gè)參數(shù),使用 “ ?”作為占位符,如 : PreparedStatement ps = (UPDATE Friends SET Address = ? WHERE Name = ?)。 (2, 王五 )。 謝謝! 結(jié)束 休
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1