版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JavaServer Pages(JSP)網(wǎng)頁程序設(shè)計(jì),王新穎,2,Web的發(fā)展過程,靜態(tài)Web:以 *.htm ,*.html 為后綴,讀取服務(wù)器端內(nèi)容時(shí),直接將網(wǎng)頁內(nèi)容傳遞給客戶端瀏覽器;所有用戶看到的效果都是一樣的,3,Web的發(fā)展過程,Applet:可以讓客戶端應(yīng)用程序具有交互性 沒有擺脫靜態(tài)Web的處理流程,仍舊是在客戶端使用各種動(dòng)態(tài)效果 Applet程序本身執(zhí)行效率低,4,Web的發(fā)展過程,動(dòng)態(tài)Web:Web頁面的展示效果,因人而改變;并且具有交互性;支持?jǐn)?shù)據(jù)庫操作 無需在客戶端植入JVM,普通瀏覽器即可 實(shí)現(xiàn)手段:ASP、PHP、Java Servlet 、JSP,5,JSP簡介
2、,JSP(Java Server Pages)是由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前比較新的是JSP2.0規(guī)范。,6,Tomcat服務(wù)器配置與使用,Tomcat是一個(gè)Web服務(wù)器,是用Java語言開發(fā)的,實(shí)現(xiàn)了一個(gè)S
3、ervlet引擎和JSP引擎,因此他支持Java Servlet和JSP Tomcat是一個(gè)Web容器,所有的JavaEE WEB程序可以在其上運(yùn)行 Tomcat服務(wù)器是一個(gè)符合JavaEE標(biāo)準(zhǔn)的WEB服務(wù)器,因此J2EE的EJB程序無法在其上運(yùn)行,如果要運(yùn)行EJB程序,可以選擇能夠運(yùn)行EJB程序的容器:WebLogic、WebSphere,7,Tomcat服務(wù)器配置與使用,Tomcat是一個(gè)免費(fèi)的服務(wù)器,下載地址:/ 目前比較新的版本是Tomcat6 Tomcat版本: 手工安裝版 tar.gz Linux安裝版 zip Windows安裝版 e
4、xe Windows中有一個(gè)服務(wù),則自動(dòng)在服務(wù)注冊,8,Tomcat服務(wù)器配置與使用,下載JDK 安裝JDK 配置JDK JAVA_HOME=jdk的安裝目錄 CLASSPATH=%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar; path=%JAVA_HOME%bin;,9,Tomcat服務(wù)器配置與使用,下載Tomcat 安裝Tomcat 注意服務(wù)器端口:8080 配置Tomcat CATALINA_HOME=tomcat的安裝路徑 CATALINA_BASE= tomcat的安裝路徑 CLASSPATH
5、=%CATALINA_HOME%libservlet-api.jar;,10,Tomcat服務(wù)器目錄結(jié)構(gòu),bin 存放啟動(dòng)和關(guān)閉Tomcat服務(wù)器的可執(zhí)行文件 conf Tomcat配置的目錄,所有與Tomcat配置有關(guān)的內(nèi)容都在此文件夾之下 |-Sever.xml:Tomcat服務(wù)器的配置文件 lib 存放Tomcat運(yùn)行所需的*.jar包 logs 存放日志文件 temp 存放一些動(dòng)態(tài)生成的臨時(shí)文件 webapps 存放所有的WEB應(yīng)用程序,包括應(yīng)用程序示例,以及用戶應(yīng)用程序 work 存放JSP編譯后產(chǎn)生的class文件,11,Tomcat服務(wù)器配置與使用,修改端口號(hào):80 當(dāng)虛擬目錄下
6、的class被更新時(shí),自動(dòng)被加載,12,Tomcat服務(wù)器配置與使用, ,13,Tomcat服務(wù)器配置與使用,顯示服務(wù)器目錄列表:修改 conf/web.xml文件 default org.apache.catalina.servlets.DefaultServlet debug 0 listings true 1 ,14,Tomcat服務(wù)器配置與使用,設(shè)置網(wǎng)站默認(rèn)頁 WEB-INF/web.xml default.html default.htm default.jsp ,15,第一個(gè)JSP示例, The First 程序編寫完成之后一定要放在服務(wù)器上(虛擬目錄中),通過瀏覽器運(yùn)行 運(yùn)行時(shí)第
7、一次(修改后)很慢,之后速度很快!,16,JSP的工作流程,一個(gè)JSP頁面的具體執(zhí)行可分為如下幾個(gè)步驟: 瀏覽器客戶端向JSP容器(如:Tomcat)發(fā)出對(duì)JSP頁面(如index.jsp)的請(qǐng)求 JSP容器將對(duì)應(yīng)JSP頁面轉(zhuǎn)換成JAVA Servlet源代碼(如index_jsp.java) JSP容器編譯該源代碼,生成.class文件(如index_jsp.class) JSP容器加載運(yùn)行對(duì)應(yīng)的.class文件,生成響應(yīng)的結(jié)果頁面; JSP容器把響應(yīng)的輸出結(jié)果發(fā)送到瀏覽器端,17,JSP的工作流程,18,JSP文件結(jié)構(gòu), . 其他 HTML 語言 其他 HTML 語言 ,19,JSP示例(
8、Hello.jsp), 你好 , 你好 你好 ,20,JSP的工作流程,JSP頁面是由JSP容器自動(dòng)管理的。JSP頁面的生命周期包括兩個(gè)階段:轉(zhuǎn)換階段(Translation Phase)和執(zhí)行階段(Execution Phase) Jsp頁面對(duì)應(yīng)的“頁面實(shí)現(xiàn)類”Servlet和對(duì)應(yīng)的編譯結(jié)果class文件被自動(dòng)存放在Tomcat 的安裝目錄下的 workCatalinalocalhost應(yīng)用程序名orgapachejsp 所有的JSP文件在第一次運(yùn)行時(shí)都會(huì)自動(dòng)編譯成*.class文件: 首次運(yùn)行:*.jsp *.java *.class 運(yùn)行顯示 第二次: |-|,21,JSP的工作流程,2
9、2,查找對(duì)應(yīng)的JSP文件,是否存在,Y,N,是否是修改或創(chuàng)建,后第一次調(diào)用,Y,調(diào)用Jsp Parser將其,編譯成Servlet程序,調(diào)用JSDK將對(duì)應(yīng)的Servlet,程序編譯成Servlet字節(jié)碼,執(zhí)行(若未載入則先載入),已有的對(duì)應(yīng)的Java字節(jié)碼,N,JSP,23,JSP語法基礎(chǔ),JSP文件的命名規(guī)則 JSP中包括:常規(guī)JSP頁面、靜態(tài)包含段和JSP文檔等。 常規(guī)JSP頁面:使用擴(kuò)展名.jsp 靜態(tài)包含段:“JSP段”或“JSP碎片”,一般使用擴(kuò)展名為.jspf JSP文檔:以XML格式定義的JSP頁面,默認(rèn)擴(kuò)展名.jspx,24,JSP語法基礎(chǔ),JSP屬性值 JSP使用的標(biāo)記可指定
10、屬性,其格式同樣遵守XML規(guī)范,放在引號(hào)(單引號(hào)或雙引號(hào))中; 屬性值可以是:文字屬性值或表達(dá)式 例如: ,25,JSP語法基礎(chǔ),JSP中的注釋 顯式注釋:HTML注釋:最終會(huì)發(fā)送到客戶端 ,客戶通過查看源代碼可以看到這些注釋 - - 隱式注釋:JAVA注釋:不會(huì)在客戶端顯示,即不會(huì)被服務(wù)器執(zhí)行 -%,26,JSP語法基礎(chǔ), ,27,JSP語法基礎(chǔ),JSP數(shù)據(jù)輸出 或 此處的換行只作用于生成的HTML代碼,而跟頁面顯示效果無關(guān) :表達(dá)式 類似于:out.println() ; 提示:在開發(fā)時(shí)盡量不要使用out.println()輸出,而使用進(jìn)行輸出 示例:打印9*9表,28,JSP語法基礎(chǔ),)
11、 ; for(int i=0;i) ; for(int j=0;j+i*j+) ; out.println() ; out.println() ; %,29,JSP語法基礎(chǔ), ,30,JSP語法基礎(chǔ),JSP中的變量聲名 :聲明全局變量、類、方法 全局變量,實(shí)例化一次 在此處聲明類或方法,在開發(fā)中很少 :寫具體的JAVA代碼或聲明局部變量 與 聲明變量區(qū)別: JSP是一種動(dòng)態(tài)WEB程序,必須有交互功能,31,JSP語法基礎(chǔ),JSP頁面構(gòu)成 元素(Elements) JSP容器支持的元素類型的實(shí)例,如指令元素、行為元素和腳本元素 模版數(shù)據(jù)(Template Data) 需要經(jīng)過JSP容器特殊處理、
12、直接發(fā)送到客戶端的所有非元素的其他內(nèi)容,如HTML文本,32,JSP語法基礎(chǔ),JSP有三種不同類型的語法 編譯器指令(DIRECTIVE) 腳本語法(SCRIPTING) 動(dòng)作語法(ACTION) , , , ,,33,JSP語法基礎(chǔ),編譯器指令:獨(dú)立于JSP頁面接受任何請(qǐng)求,但不產(chǎn)生任何頁面輸出信息 include 用于在代碼編譯時(shí)包含指定的源文件的靜態(tài)內(nèi)容,可以包含任意類型的文件 page 用于指明當(dāng)前JSP頁面的屬性 taglib 用于設(shè)置JSP標(biāo)簽庫,34,Page指令, language:定義轉(zhuǎn)換單元中的生命、腳本片段和表達(dá)式中使用的腳本語言 info:定義JSP頁面描述信息,其值可
13、以是任意字符串 import:導(dǎo)入JSP頁面腳本環(huán)境中使用的Java類定義 session:指定該頁面師傅有HTTP回話 contentType:指定返回的瀏覽器的內(nèi)容類型和編碼格式(charset) text/plain:純文本 text/html:純文本的HTML頁面(默認(rèn)值) text/xml:XTML頁面 application/x-msexecl:Excel文件 application/msword:Word文件 errorPage:指定錯(cuò)誤處理也面 isErrorPage:指定當(dāng)前的JSP頁面是否為另外JSP頁面的錯(cuò)誤處理頁面 buffer和autoFlush:用于指定處理頁面輸出
14、內(nèi)容時(shí)的緩沖模式,控制JSP的緩沖 isElIgnored:是否禁止EL表達(dá)式的計(jì)算(true則禁止),35,動(dòng)作指令,為JSP頁面的執(zhí)行提供信息,遵循XML語法 JSP2.0中有20種標(biāo)準(zhǔn)行為,可分為如下幾類: JSP1.2中原有的6種: , , , , 和 存取JavaBean的3種: , 和 用于JSP文檔的6種: , , , , 和 用于動(dòng)態(tài)產(chǎn)生XML元素的3種: , 和 用于標(biāo)記文件的2種:和,36,和 可以向被包含頁面中傳遞參數(shù) 不包含參數(shù)的 包含參數(shù)的 * ,37,incl.txt PARAM1: PARAM2: incl.jsp PARAM1: PARAM2: Demo1.js
15、p Demo2.jsp ,38,Demo3.jsp ,39,include.jsp include.jsp: Demo4.jsp / 比較兩類包含語句的差別 includeDemo04.jsp: ,40, 跳轉(zhuǎn)指令,屬于無條件跳轉(zhuǎn)語句 標(biāo)簽指令形式代碼,必須寫在Scriptlet()之外 使用此跳轉(zhuǎn)語句,頁面的內(nèi)容是已經(jīng)跳轉(zhuǎn)了,但是地址欄沒有任何變化;即:用戶的請(qǐng)求依然沒有改變,所以此跳轉(zhuǎn),屬于服務(wù)器端跳轉(zhuǎn) 轉(zhuǎn)向的目標(biāo)可以是靜態(tài)HTML頁面,JSP頁面或Java Servlet類,41,fDemo1.jsp 這里永遠(yuǎn)不會(huì)執(zhí)行! fDemo2.jsp: ,42,JSP的四種屬性范圍,JSP中屬性
16、的保存范圍: 在JSP中可以采用以下方法設(shè)置和取得屬性: 設(shè)置:public void setAttribute(String name, Object value) name:屬性名稱為字符串 value:屬性值可以為任意對(duì)象 取得:public Object getAttribute(String name),43,Page范圍,在JSP中設(shè)置的一個(gè)頁的屬性范圍內(nèi)有效,44,Page范圍,pageDemo01.jsp name : password : ,45,Page范圍,pageDemo01.jsp pageDemo02.jsp name : password : ,46,Reques
17、t范圍,將屬性保存在一次請(qǐng)求范圍之內(nèi) 前提:必須使用服務(wù)器端跳轉(zhuǎn),47,Request范圍,requestDemo01.jsp name : password : ,48,Request范圍,requestDemo01.jsp requestDemo02.jsp name : password : 刷新 ,49,Session范圍,與session有關(guān)的任何打開的頁面都有效 任何類型的跳轉(zhuǎn)均可,50,Session范圍,sessionDemo01.jsp name : password : ,51,Session范圍,sessionDemo01.jsp sessionDemo02.jsp na
18、me : password : 刷新 ,52,Application范圍,在整個(gè)服務(wù)器范圍內(nèi)都有效 applicationDemo01.jsp name : password : ,53,Application范圍,applicationDemo01.jsp applicationDemo02.jsp name : password : 刷新 ,54,JSP屬性范圍,四種屬性范圍都可以依靠pageContext 展開 public static final int APPLICATION_SCOPE public static final int SESSION_SCOPE public st
19、atic final int REQUEST_SCOPE public static final int PAGE_SCOPE 在開發(fā)中,往往使用session、request 范圍,55,JSP屬性范圍,pageDemo03.jsp name : password : ,56,JSP內(nèi)置對(duì)象,57,JSP內(nèi)置對(duì)象,JSP內(nèi)置對(duì)象分類 與Servlet相關(guān)的對(duì)象:page、config 與I/O相關(guān)的對(duì)象:out、request、response JSP執(zhí)行時(shí),提供有關(guān)Context對(duì)象:session、application、pageContext 與Error相關(guān)的對(duì)象:exception
20、,58,request對(duì)象,用于服務(wù)器端接收客戶端請(qǐng)求的信息,以便對(duì)其做進(jìn)一步處理,實(shí)現(xiàn)交互設(shè)計(jì)的功能 getParameter():接收請(qǐng)求的參數(shù) 功能: 處理中文,避免亂碼 對(duì)所有的數(shù)據(jù)進(jìn)行再編碼:ISO8859-1編碼 ;轉(zhuǎn)換后,再將byte數(shù)組重新變?yōu)樽址?public byte getBytes(encoding) 設(shè)置統(tǒng)一字符編碼 public void setCharacterEncoding(String env) throws UnsupportedEncodingException,59,request對(duì)象,demo01.jsp 用戶名: ,60,request對(duì)象,de
21、mo02.jsp 輸入內(nèi)容為:,61,request對(duì)象,demo02.jsp 輸入內(nèi)容為:,62,request對(duì)象,如果傳遞的內(nèi)容是數(shù)組(復(fù)選框的情況下、多個(gè)下拉列表項(xiàng)) public String getParameterValues(String name) demo03.jsp 用戶名: 興趣: 籃球1 游泳1 唱歌1 跳舞1 看書1 ,63,request對(duì)象,demo04.jsp 用戶名為: 興趣為: 、 ,64,request對(duì)象,隱藏域 通過URL地址獲取參數(shù) http:/localhost/test/demo06.jsp?un=Hello response.setHeade
22、r(“refresh”,“秒;URL= 頁面地址) ; response進(jìn)行跳轉(zhuǎn)重定向 response.sendRedirect (跳轉(zhuǎn)路徑) 思考:試比較兩種跳轉(zhuǎn)的差別,66,response對(duì)象,設(shè)置Cookie Cookie是服務(wù)器端保存在客戶端的一組資源 登陸時(shí)會(huì)問你是否記住密碼?或XX長的時(shí)間不用再登陸 此種功能的實(shí)現(xiàn)就是通過Cookie public void addCookie(Cookie cookie) 向客戶端設(shè)置Cookie response 在服務(wù)器端取得Cookie request,67,response對(duì)象,Cookiedemo1.jsp ,68,response
23、對(duì)象,Cookiedemo2.jsp - ,69,response對(duì)象,服務(wù)器端在客戶端第一次訪問之后,會(huì)設(shè)置一個(gè)默認(rèn)的Cookie在客戶端上:JSESSIONID JSessionID :表示唯一的一個(gè)客戶端在服務(wù)器上的編號(hào) 身份證編號(hào) 自動(dòng)獲得(對(duì)應(yīng)一個(gè)SESSION對(duì)象) 默認(rèn)情況下,Cookie只對(duì)當(dāng)前瀏覽器有效 Cookie是保存在客戶端上的信息,安全性較差。不要把過多的隱秘信息保留在Cookie中,70,session對(duì)象,用于保存用戶的各種信息, 直到超時(shí)(一般為900S)或被人為釋放 服務(wù)器上通過session來分別不同的用戶 Session ID:任何連到服務(wù)器上的用戶,服務(wù)
24、器都會(huì)為之分配唯一的一個(gè)不會(huì)重復(fù)的session ID ;sessionID是由服務(wù)器統(tǒng)一管理的,人為不能控制 session.getId() session.isNew(),71,session對(duì)象,session的屬性 設(shè)置屬性: public void setAttribute(String name, Object value) 取得屬性: public Object getAttribute(String name) 刪除屬性: public void removeAttribute(String name) putValue setAttribute getValue getAtt
25、ribute removeValue removeAttribute,72,session對(duì)象,設(shè)置session失效 session.invalidate() 得到session的創(chuàng)建時(shí)間 session.getCreationTime() 取得用戶最后一次操作的時(shí)間 session. getLastAccessedTime() 用戶在線時(shí)間 最后一次操作時(shí)間-創(chuàng)建時(shí)間,73,Application對(duì)象,用于保存公共信息,對(duì)所有用戶共享 屬性操作:setAttribute()、getAttribute()、removeAttribute(),74,Application對(duì)象,獲取服務(wù)器的工作
26、目錄(網(wǎng)站的虛擬目錄) application.getRealPath(String path) Application是在整個(gè)服務(wù)器中保持的只有一個(gè)實(shí)例的對(duì)象,在實(shí)際應(yīng)用中往往使用getServletContext()方法代替application application.getRealPath(“/”); getServletContext().getRealPath(/) ; this.getServletContext().getRealPath(/) ;,75,out對(duì)象,主要用于動(dòng)態(tài)的向客戶端輸出數(shù)據(jù) 在JSP中應(yīng)盡可能少使用此對(duì)象 要用完全代替,76,config對(duì)象與安全性,W
27、EB-INF文件夾 保存在該文件夾中的jsp文件無法被訪問 修改web.xml文件 wxy /WEB-INF/sdemo.jsp wxy /jlu ,77,config對(duì)象與安全性,用來獲取服務(wù)器的配置參數(shù),即在WEB-INF/web.xml中配置的參數(shù) 如果要取得這些初始化參數(shù),必須通過映射名稱進(jìn)行訪問JSP頁面,通過config對(duì)象取得初始化參數(shù) public String getInitParameter(String name) 獲取具體名字的參數(shù) public Enumeration getInitParameterNames() 獲取全部參數(shù)名字,78,JSP幾個(gè)內(nèi)置對(duì)象的作用域,
28、79,JSP與數(shù)據(jù)庫,JDBC原理圖,80,JSP與數(shù)據(jù)庫,JDBC的連接方式: JDBC-ODBC 橋連接方式:SUN公司開發(fā)出來的一套數(shù)據(jù)庫訪問操作,使用ODBC 提供的數(shù)據(jù)庫連接技術(shù)訪問數(shù)據(jù)庫,性能較差,不適合在開發(fā)中使用 JDBC 驅(qū)動(dòng)連接:是由各數(shù)據(jù)庫生產(chǎn)廠家提供,按JDBC 標(biāo)準(zhǔn)提供,81,JSP與數(shù)據(jù)庫,JDBC中的常用接口 DriverManager Connection Statement / PreparedStatement ResultSet,82,JSP與數(shù)據(jù)庫,利用JDBC開發(fā)Web數(shù)據(jù)庫應(yīng)用框架 裝入JDBC驅(qū)動(dòng)程序 Class.forName(“”) ; 創(chuàng)建數(shù)
29、據(jù)庫連接 Connection conn = DriverManager.getConnection(“”); 創(chuàng)建會(huì)話對(duì)象 Statement stmt = conn.createStatement(); PreparedStatement pstmt = conn.prepareStatement(sql) ;,83,JSP與數(shù)據(jù)庫,利用會(huì)話對(duì)象執(zhí)行SQL語句,得到結(jié)果 stmt.executeUpdate(sql) ; stmt.executeQuery(sql) ; pstmt.executeUpdate() ; pstmt.executeQuery() ; 處理結(jié)果 一般是對(duì)Resu
30、ltSet的操作 關(guān)閉數(shù)據(jù)庫連接 關(guān)閉的順序與打開的順序相反,84,JSP與數(shù)據(jù)庫,JDBC-ODBC橋連接 建立數(shù)據(jù)庫和表(Access或SQL Server) 配置 ODBC 數(shù)據(jù)源 驅(qū)動(dòng)程序 sun.jdbc.odbc.JdbcOdbcDriver 數(shù)據(jù)庫連接地址 jdbc:odbc:數(shù)據(jù)源名字,85,JSP與數(shù)據(jù)庫,86,JSP與數(shù)據(jù)庫,try /用于執(zhí)行更新語句 Class.forName(DBDRIVER) ; conn = DriverManager.getConnection(DBURL,dbu,dbp) ; sql = insert into person values (C
31、Y,yyy,38) ; sql1 = update person set age=32 ; stmt = conn.createStatement() ; pstmt = conn.preparedStatement(sql1) ; stmt.executeUpdate(sql) ; pstmt.executeUpdate() ; catch(Exception e) out.println(失??!+e) ; finally conn.close(); ,87,JSP與數(shù)據(jù)庫,try /用于查詢語句 Class.forName(DBDRIVER) ; conn = DriverManager.
32、getConnection(DBURL,dbu,dbp) ; sql = “select * from person ; stmt = conn.createStatement() ; rs=stmt.executeQuery(sql) ; 對(duì)結(jié)果集rs進(jìn)行處理下頁 catch(Exception e) out.println(失??!+e) ; finally conn.close(); ,88,JSP與數(shù)據(jù)庫,處理結(jié)果集 ID 姓名 密碼 年齡 ,89,JSP與數(shù)據(jù)庫,try /PreparedStatement執(zhí)行sql語句 Class.forName(DBDRIVER) ; conn =
33、 DriverManager.getConnection(DBURL) ; sql = “insert into person values (?,?,?) ; pstmt = conn.preparedStatement(sql1) ; pstmt.setString(1, wxy) ; pstmt.setString(2,www) ; pstmt.setInt(3,31) ; pstmt.executeUpdate() ; catch(Exception e) out.println(失敗!+e) ; finally conn.close(); ,90,JSP與數(shù)據(jù)庫,JDBC2.0的新特
34、性 ResultSet對(duì)象中的光標(biāo)能夠上下自由的移動(dòng) 能直接使用Java程序語句更新數(shù)據(jù)庫表格中的內(nèi)容,而不需要些SQL語句 可以進(jìn)行數(shù)據(jù)庫的批處理操作,91,JSP與數(shù)據(jù)庫,可滾動(dòng)的ResultSet TYPE_FORWARD_ONLY:只能向下滾動(dòng),與JDBC1.0沒差別 TYPE_SCROLL_SENSITIVE:可以上下滾動(dòng),但是不能取得結(jié)果集改變后的值 TYPE_SCROLL_INSENSITIVE:可以上下滾動(dòng),并且能夠取得結(jié)果集改變后的值 上述選項(xiàng),性能依次下降!,92,JSP與數(shù)據(jù)庫,可滾動(dòng)的ResultSet中的方法 rs.next() rs.previous() rs.fi
35、rst() rs.last() rs.absolute(int n) rs.relative(int n),93,JSP與數(shù)據(jù)庫,直接使用結(jié)果集操作 只讀:ResultSet.CONCUR_READ_ONLY 更新:ResultSet.CONCUR_UPDATABLE 此類操作性能很差,若數(shù)據(jù)量較少,可以采用此種方式,如果數(shù)據(jù)量較大,絕對(duì)不要使用 使用: stmt = conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE),94,JSP與數(shù)據(jù)庫,可更新結(jié)果集中的方法 rs.update
36、XXX(“列名字”) ; rs.insertRow() ; rs.updateRow() ; rs.deleteRow() ; 注:在對(duì)結(jié)果集進(jìn)行更新操作之前,要先進(jìn)行定位操作!,95,JSP與數(shù)據(jù)庫,批處理操作事務(wù)處理 JSP中默認(rèn)設(shè)置Connection為自動(dòng)提交;因此在進(jìn)行事務(wù)處理前,需要設(shè)置為非自動(dòng)提交,96,JSP與數(shù)據(jù)庫,try stmt = conn.createStatement() ; conn.setAutoCommit(false) ; / 取消自動(dòng)提交 / 編寫批處理SQL語句 stmt.addBatch(“insert into person values (wxy1,zzz,30) ; stmt.addBatch(“insert into person values (wxy2,zzz,30) ; stmt.addBatch(“insert into person values (wxy3,zzz,30) ; /故意設(shè)置一條錯(cuò)誤的SQL語句 stmt.addBatch(“insert into person
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 17、監(jiān)控改造工程重點(diǎn)及難點(diǎn)分析
- 混凝土外觀質(zhì)量缺陷分析
- 變頻技術(shù)及應(yīng)用 課件 學(xué)習(xí)情境3、4 變頻器的基本調(diào)試、變頻器的運(yùn)行調(diào)試
- 二零二五年度藝術(shù)展覽館租賃合同共同展覽與藝術(shù)交流3篇
- 20202021學(xué)年高中數(shù)學(xué)北師大版選修2-1課件第一章章末優(yōu)化總結(jié)
- 2024年隴南地區(qū)人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 2024年濟(jì)寧職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2024年陽泉煤業(yè)(集團(tuán))有限責(zé)任公司總醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 2024年陽春市婦幼保健院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 2024年滄州職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 扭剪型高強(qiáng)螺栓重量表
- 關(guān)鍵施工技術(shù)、工藝及工程項(xiàng)目實(shí)施的重點(diǎn)、難點(diǎn)和解決方案資料
- 電纜壓降計(jì)算用表格
- 二年級(jí)乘除法豎式計(jì)算題
- 第十二章學(xué)術(shù)論文的撰寫與發(fā)表PPT課件
- 淺談境外工程項(xiàng)目勞動(dòng)用工的薪酬管理
- 中石化:化工銷售市場的挑戰(zhàn)和對(duì)策
- 金光修持法(含咒訣指印、步驟、利益說明)
- 精華版三副面試問題及參考答案
- 鐵路專用線運(yùn)營管理分析
- 生活飲用水輸配水設(shè)備及防護(hù)材料衛(wèi)生安全評(píng)價(jià)規(guī)范
評(píng)論
0/150
提交評(píng)論