



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、武夷學院 -JSP 實驗七: JSP數據庫操作武夷學院實驗報告課程名稱: _Web應用系統開發(軟件方向)_ 項目名稱: _ JSP數據庫操作姓名: _專業: _計算機與科學技術 _ 班級: _計科 3_學號:同組成員 _無_實驗目的:1、使學生掌握連接數據庫操作。2、讓學生掌握使用 JDBC 查詢數據庫中表的記錄。3、使學生掌握使用預處理語句向數據庫的表添加記錄。實驗要求:1、使用 MVC 設計一個查詢數據庫表中記錄的 JSP 程序。編寫一個 JSP 頁面inputDatabase.jsp ,用戶可以輸入數據庫名、表名后提交一個servlet , servlet將查詢結果放入一個 Javab
2、ean 模型中,然后轉發到 inputDatabase.jsp,inputDatabase.jsp 頁面再顯示 Javabean 中的數據。2、使用 MVC 模式。視圖部分由兩個 JSP 頁面構成,其中一個頁面( insert.jsp)負責提供輸入新記錄的視圖, 即用戶可以在該頁面輸入要添加的記錄,然后將要添加的記錄提交給servlet 。servlet 負責插入記錄到數據庫的表中,然后查詢數據庫的表,并將查詢結果存儲到 Javabean 數據模型中,然后請求視圖中的另一個JSP 頁面( showRecord.jsp)顯示數據模型中的數據。3、提交實驗報告,實驗報告中要有實驗過程、結果的截圖說
3、明。二、實驗過程記錄 1:1、使用 MVC 設計一個查詢數據庫表中記錄的 JSP 程序。編寫一個 JSP 頁面 inputDatabase.jsp ,用戶可以輸入數據庫名、表名后提交一個 servlet , servlet 將查詢結果放入一個 Javabean 模型中,然后轉發到 inputDatabase.jsp ,inputDatabase.jsp 頁面再顯示 Javabean 中的數據。(1)建立 MYSQL 連接,帳號為 root 密碼為空,并創建 warehouse 數據庫和 product 表。1 注:實驗過程記錄要包含實驗步驟,頁碼不夠可自行添加。(2)源代碼和結果截圖: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> 數據庫 : < inputtype= "text"name = "dataBase"size= 22value= warehouse>< br > 表名: < inputtype= "text"name = "tableName"size= 23value= product>< br > 用戶名 ( 默認 root): < inputtype= "text"name = "
6、;user"size= 10value= root>< br > 用戶密碼 ( 默認空 ) : <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(" 全部記錄數 " +table.length);for( inti=0;i<table.length;i+) out.print("<tr>");for( intj=0;j<columnName.length;j+) out.print("<td>"+tableij+/全部記錄數"</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();/創建 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();/得到結果集的列數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();/得到記錄數String tableRecord=recordBean.getTableRecord();tableRecord=new StringrowNumbercolumnCount;rs .beforeFirst();inti =0;數據模型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);/重定向數據模型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運行結果2、使用 MVC 模式。視圖部分由兩個 JSP 頁面構成,其中一個頁面( insert.jsp )負責提供輸入新記錄的視圖, 即用戶可以在該頁面輸入要添加的記錄, 然后將要添加的記錄提交給 servlet 。servlet 負責插入記錄到數據庫的表中,然后查詢數據庫的表,并將查詢結果存儲到 Javabean數據模型中,然后請
21、求視圖中的另一個JSP 頁面( showRecord.jsp數據模型中的數據。(1)在 MYSQL 數據庫中創建 Student數據庫并創建mess 表。)顯示(2)源代碼和結果截圖: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 >學號: < 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"/創建 Javabean對象, resultBean);response);)catch(Exceptionexp )result
29、Beanrequest= new Example7_2_Bean(); .setAttribute( "resultBean"/ 創建 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();/得到結果集的列數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();/得到記錄數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 +;數據模型resultBean.setTableRecord(tableRecord);/更新 Javabean數據模型con .close();RequestDispatcherdispatcherrequest.getRequestDispatcher(dispatcher.forward(request="showRecord.jsp", response);/轉發);catch(SQLExceptione )System.out .println(e );fail(request, response, " 添加記錄失敗:" + e .toString();publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環衛工人承攬合同協議
- 生態農莊轉讓合同協議
- 監控技術入股協議合同書
- 電機品類采購合同協議
- 田雞養殖供貨合同協議
- 生鮮批發采購合同協議
- 電子協議書電商合同模板
- 監控施工費合同協議
- 電梯安裝承攬合同協議
- 電梯服務保養合同協議
- 谷草訂購合同范例
- 《塑料基礎知識培訓》課件
- 煤質化驗工職業技能競賽理論考試題庫500題(含答案)
- 老年患者圍手術期多模式鎮痛低阿片方案中國專家共識(2021全文版)
- 成都城市規劃簡析
- 異位妊娠治療新進展:2024年藥物治療與手術治療比較
- 2024-2025學年高二上學期期中家長會-家校同頻共話成長 課件
- 混合痔的中醫護理方案
- 托幼機構衛生評價報告
- 社區鄰里互助志愿服務活動方案
- 【構建企業級好數據】Dataphin智能數據建設與治理產品白皮書
評論
0/150
提交評論