



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、武夷學(xué)院 -JSP 實驗七: JSP數(shù)據(jù)庫操作武夷學(xué)院實驗報告課程名稱: _Web應(yīng)用系統(tǒng)開發(fā)(軟件方向)_ 項目名稱: _ JSP數(shù)據(jù)庫操作姓名: _專業(yè): _計算機與科學(xué)技術(shù) _ 班級: _計科 3_學(xué)號:同組成員 _無_實驗?zāi)康模?、使學(xué)生掌握連接數(shù)據(jù)庫操作。2、讓學(xué)生掌握使用 JDBC 查詢數(shù)據(jù)庫中表的記錄。3、使學(xué)生掌握使用預(yù)處理語句向數(shù)據(jù)庫的表添加記錄。實驗要求:1、使用 MVC 設(shè)計一個查詢數(shù)據(jù)庫表中記錄的 JSP 程序。編寫一個 JSP 頁面inputDatabase.jsp ,用戶可以輸入數(shù)據(jù)庫名、表名后提交一個servlet , servlet將查詢結(jié)果放入一個 Javab
2、ean 模型中,然后轉(zhuǎn)發(fā)到 inputDatabase.jsp,inputDatabase.jsp 頁面再顯示 Javabean 中的數(shù)據(jù)。2、使用 MVC 模式。視圖部分由兩個 JSP 頁面構(gòu)成,其中一個頁面( insert.jsp)負(fù)責(zé)提供輸入新記錄的視圖, 即用戶可以在該頁面輸入要添加的記錄,然后將要添加的記錄提交給servlet 。servlet 負(fù)責(zé)插入記錄到數(shù)據(jù)庫的表中,然后查詢數(shù)據(jù)庫的表,并將查詢結(jié)果存儲到 Javabean 數(shù)據(jù)模型中,然后請求視圖中的另一個JSP 頁面( showRecord.jsp)顯示數(shù)據(jù)模型中的數(shù)據(jù)。3、提交實驗報告,實驗報告中要有實驗過程、結(jié)果的截圖說
3、明。二、實驗過程記錄 1:1、使用 MVC 設(shè)計一個查詢數(shù)據(jù)庫表中記錄的 JSP 程序。編寫一個 JSP 頁面 inputDatabase.jsp ,用戶可以輸入數(shù)據(jù)庫名、表名后提交一個 servlet , servlet 將查詢結(jié)果放入一個 Javabean 模型中,然后轉(zhuǎn)發(fā)到 inputDatabase.jsp ,inputDatabase.jsp 頁面再顯示 Javabean 中的數(shù)據(jù)。(1)建立 MYSQL 連接,帳號為 root 密碼為空,并創(chuàng)建 warehouse 數(shù)據(jù)庫和 product 表。1 注:實驗過程記錄要包含實驗步驟,頁碼不夠可自行添加。(2)源代碼和結(jié)果截圖:1. 源
4、代碼inputDatabase.jsp<% pagecontentType= "text/html;charset=gb2312"%>< jsp:useBeanid ="recordBean"class = "mybean.data.Shiyan1_Bean"scope = "session"/>< HTML>< bodybgcolor= yellow>< fontsize=2 >< formaction="shiyan1Servlet&q
5、uot;method =post>< b> 數(shù)據(jù)庫 : < inputtype= "text"name = "dataBase"size= 22value= warehouse>< br > 表名: < inputtype= "text"name = "tableName"size= 23value= product>< br > 用戶名 ( 默認(rèn) root): < inputtype= "text"name = "
6、;user"size= 10value= root>< br > 用戶密碼 ( 默認(rèn)空 ) : <inputtype= "text"name ="password"size= 10 >< br >< inputtype="submit"name = "b"value=" 提交 " ></ form>< tableborder= 1><%String table=recordBean.getTableRe
7、cord();if(table=null) out.print(" 沒有記錄 " );return;String columnName=recordBean.getColumnName();if(columnName!=null) out.print("<tr>");for( inti=0;i<columnName.length;i+)out.print("<th>"+columnNamei+"</th>");out.print("</tr>"
8、;);out.println(" 全部記錄數(shù) " +table.length);for( inti=0;i<table.length;i+) out.print("<tr>");for( intj=0;j<columnName.length;j+) out.print("<td>"+tableij+/全部記錄數(shù)"</td>");out.print("</tr>");%></ table</ font></
9、body >></ HTML>Shiyan1_Bean.javapackagemybean.data;publicclassShiyan1_BeanString columnName;String tableRecord=nullpublicShiyan1_Bean() tableRecord=new String11;columnName=new String1;/存放列名/存放查詢到的記錄public void tableRecordsetTableRecord(String = s ;s )publicreturnString getTableRecord()ta
10、bleRecord;public void columnNamesetColumnName(String =s ;s ) publicreturnString getColumnName() columnName;Shiyan1_Servlet.javapackagemyservlet.control;importimportimportimportimportpublicclassShiyan1_ServletextendsHttpServletpublicvoidinit(ServletConfigconfig)throwssuper.init(config);try Class.forN
11、ameServletException);catch(Exceptione)publicvoiddoPost(HttpServletRequestrequest,HttpServletResponsethrowsServletException,IOExceptionrequest.setCharacterEncoding("gb2312");StringdataBase=request.getParameter("dataBase");StringtableName=request.getParameter("tableName")
12、;Stringuser=request.getParameter("user");Stringpassword=request.getParameter("password");booleanboo =(dataBase= null|dataBase.length()=0);boo =boo |(tableName= null|tableName.length()=0);boo =boo |(user= null|user.length()=0);if( boo ) fail(request, response, " 查詢失敗 " )
13、;response)HttpSession Connection Shiyan1_Beansession=requestcon = null;recordBean= null.getSession(;true);tryrecordBean=(Shiyan1_Bean)session.getAttribute(if( recordBean= null)recordBean= new Shiyan1_Bean();/創(chuàng)建 Javabeansession.setAttribute("recordBean", recordBean"recordBean"對象);
14、);catch(Exceptionexp )recordBean=new Shiyan1_Bean();session.setAttribute("recordBean", recordBean);Stringuri+dataBase;trycon =DriverManager.getConnection( uri, user, password);Statementsql= con .createStatement(ResultSet.TYPE_SCROLL_SENSITIVEResultSet.CONCUR_READ_ONLY);ResultSetrs = sql.ex
15、ecuteQuery("SELECT * FROM "+tableName);ResultSetMetaDatametaData=rs .getMetaData();intcolumnCount=metaData.getColumnCount();/得到結(jié)果集的列數(shù)String columnName=new StringcolumnCount;for( inti =0; i < columnName. length; i +) columnName i =metaData.getColumnName(i +1);/得到列名,recordBean.setColumnNa
16、me(columnName);/更新 Javabeanrs .last();introwNumber= rs .getRow();/得到記錄數(shù)String tableRecord=recordBean.getTableRecord();tableRecord=new StringrowNumbercolumnCount;rs .beforeFirst();inti =0;數(shù)據(jù)模型while( rs .next()for( intk =0; k < columnCount; k +)tableRecord i k =rs .getString(k +1);i +;recordBean.se
17、tTableRecord(con .close();response.sendRedirect(tableRecord"inputDatabase.jsp");/更新 Javabean);/重定向數(shù)據(jù)模型catch (SQLException e ) System. out .println(e );publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptiondoPost(request, response);publicvoi
18、dfail(HttpServletRequestrequest,HttpServletResponseStringbackNews) response.setContentType("text/html;charset=GB2312");tryPrintWriterout =response.getWriter();out .println("<html><body>");out .println("<h2>"+backNews+"</h2>") ;out .prin
19、tln(" 返回 " );out .println("<a href =inputDatabase.jsp>輸入正確信息</a>");response,out .println("</body></html>");catch(IOExceptionexp )Web.xml<servlet><servlet-name>shiyan1Servlet</servlet-name></servlet><servlet-mapping>&
20、lt;servlet-name>shiyan1Servlet</servlet-name><url-pattern>/shiyan1Servlet</url-pattern></servlet-mapping>2運行結(jié)果2、使用 MVC 模式。視圖部分由兩個 JSP 頁面構(gòu)成,其中一個頁面( insert.jsp )負(fù)責(zé)提供輸入新記錄的視圖, 即用戶可以在該頁面輸入要添加的記錄, 然后將要添加的記錄提交給 servlet 。servlet 負(fù)責(zé)插入記錄到數(shù)據(jù)庫的表中,然后查詢數(shù)據(jù)庫的表,并將查詢結(jié)果存儲到 Javabean數(shù)據(jù)模型中,然后請
21、求視圖中的另一個JSP 頁面( showRecord.jsp數(shù)據(jù)模型中的數(shù)據(jù)。(1)在 MYSQL 數(shù)據(jù)庫中創(chuàng)建 Student數(shù)據(jù)庫并創(chuàng)建mess 表。)顯示(2)源代碼和結(jié)果截圖:1. 源代碼insert.jsp<% pagecontentType= "text/html;charset=gb2312"%>< HTML>< bodybgcolor= #AAFFEE >< fontsize= 2>< formaction="shiyan2Servlet?dataBase=student&tableNa
22、me=mess"method =post >< b> 添加新記錄 : < br >學(xué)號: < inputtype= "text"name = "number"size = 20 >< br > 姓名: < inputtype= "text"name = "name"size=22 >< br > 年齡: < inputtype= "text"name = "age"size=18 &
23、gt;< br >< inputtype="submit"name = "b"value=" 提交" ></ font></body ></ HTML>showRecord.jsp<% pagecontentType= "text/html;charset=gb2312"< jsp:useBeanid ="resultBean"class< HTML>< bodybgcolor= #DEEFF9 >&
24、lt; fontsize=2 >< tableborder=1 >%>scope="request"/><% String columnName=resultBean.getColumnName();%>< tr><%for(String s:columnName) %><th ><%= s%></ th ><% %></tr ><% String record = resultBean.getTableRecord();for( inti=0
25、;i<record.length;i+) %><tr ><%for( intj=0;j<recordi.length;j+) %><td ><%= recordij%> </ td ><%></ tr><% %></ table></ font></ body></ HTML>Example7_2_Bean.javapackagemybean.data;publicclassExample7_2_BeanString columnNa
26、me;String tableRecord=nullpublicExample7_2_Bean() tableRecord=new String11;columnName=new String1;/存放列名/存放查詢到的記錄public void tableRecordsetTableRecord(String = s ;s )publicreturnString getTableRecord()tableRecord;public void columnNamesetColumnName(String =s ;s ) publicreturnString getColumnName() co
27、lumnName;Shiyan2_Servlet.javapackagemyservlet.control;import/引入例子2 中的 Javabean模型importimportimportimportimportpublic class Shiyan2_Servlet public void init(ServletConfigextendsHttpServletconfig)throwsServletExceptionsuper.init(config);publicvoiddoPost(HttpServletRequestrequestthrowsServletException,
28、IOExceptionExample7_2_BeanresultBean= null;tryresultBean=(Example7_2_Bean)requestif( resultBean= null)resultBean= new Example7_2_Bean();request.setAttribute("resultBean",HttpServletResponse.getAttribute("resultBean"/創(chuàng)建 Javabean對象, resultBean);response);)catch(Exceptionexp )result
29、Beanrequest= new Example7_2_Bean(); .setAttribute( "resultBean"/ 創(chuàng)建 Javabean , resultBean );對象try Class.forName);catch(Exceptione )request.setCharacterEncoding("gb2312");StringdataBase=request.getParameter("dataBase");StringtableName=request.getParameter("tableName
30、"Stringnumber = request.getParameter("number");Stringname = request.getParameter("name");StringageStr= request.getParameter("age");if( number = null|number .length()=0) fail(request, response, " 添加記錄失敗, 必須給出記錄" );return;);if( ageStr= null|ageStr.length()=
31、0)ageStr="-1"intage = Integer.parseInt( ageStr);Connectioncon ;PreparedStatementsql;ResultSetrs ;tryStringuri+ dataBase+ "?"+"user=root&password=&characterEncoding=gb2312"con =DriverManager.getConnection( uri);sql= con .prepareStatement("insert mess VALUES(
32、?,?,?)");sql.setString(1,number );sql.setString(2,name );sql.setInt(3,age );sql.executeUpdate();sql= con .prepareStatement("SELECT * FROM "+ tableName);rs =sql.executeQuery();ResultSetMetaDatametaData=rs .getMetaData();intcolumnCount=metaData.getColumnCount();/得到結(jié)果集的列數(shù)String columnNam
33、e=new StringcolumnCount;for( inti =0; i < columnName. length; i +) columnName i =metaData.getColumnName(i +1);/得到列名resultBean.setColumnName(columnName);/更新 Javabeanrs .last();introwNumber= rs .getRow();/得到記錄數(shù)String tableRecord=resultBean.getTableRecord();tableRecord=new StringrowNumbercolumnCount
34、;rs .beforeFirst();inti =0;while( rs .next()for( intk =0; k < columnCount; k +)tableRecord i k =rs .getString(k +1);i +;數(shù)據(jù)模型resultBean.setTableRecord(tableRecord);/更新 Javabean數(shù)據(jù)模型con .close();RequestDispatcherdispatcherrequest.getRequestDispatcher(dispatcher.forward(request="showRecord.jsp", response);/轉(zhuǎn)發(fā));catch(SQLExceptione )System.out .println(e );fail(request, response, " 添加記錄失敗:" + e .toString();publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康輕食吧承包經(jīng)營及特色菜品開發(fā)合同
- 茶樓招牌設(shè)計與制作及整體裝修合同
- 智能溫室彩鋼大棚設(shè)計與施工總承包合同
- 車輛裝飾升級方案
- 新安全法考試題及答案
- 商業(yè)街區(qū)場地使用權(quán)置換及合作開發(fā)合同
- 庫存控制模型課件
- 醫(yī)療物資啟運方案
- 電氣維護培訓(xùn)課件
- 公園噪音改造方案
- D500-D505 2016年合訂本防雷與接地圖集
- 圍手術(shù)期患者血液管理指南
- 漏肩風(fēng)(肩周炎)中醫(yī)臨床路徑及入院標(biāo)準(zhǔn)2020版
- 光面爆破知識講座課件
- 工程結(jié)構(gòu)檢測鑒定與加固第1章工程結(jié)構(gòu)檢測鑒定與加固概論課件
- 高鐵站裝飾裝修方案
- DB4401-T 112.1-2021 城市道路占道施工交通組織和安全措施設(shè)置+第1部分:交通安全設(shè)施設(shè)置-(高清現(xiàn)行)
- 質(zhì)量整改通知單(樣板)
- 杭州市高級中學(xué)2022年高一新生素質(zhì)測試(分班考)模擬試卷
- 《碳纖維片材加固混凝土結(jié)構(gòu)技術(shù)規(guī)程》(2022年版)
- 短視頻:策劃+拍攝+制作+運營課件(完整版)
評論
0/150
提交評論