武夷學(xué)院-JSP實驗七:JSP數(shù)據(jù)庫操作_第1頁
武夷學(xué)院-JSP實驗七:JSP數(shù)據(jù)庫操作_第2頁
武夷學(xué)院-JSP實驗七:JSP數(shù)據(jù)庫操作_第3頁
武夷學(xué)院-JSP實驗七:JSP數(shù)據(jù)庫操作_第4頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論