版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、應(yīng)用集成原理與工具集成實驗報告 姓名: 學(xué)號: 班級: 實驗環(huán)境:普通PC機,Windows 2010、網(wǎng)絡(luò)交換機、Elipse 開發(fā)軟件、數(shù)據(jù)庫為SQL Server 2008,Tomcat服務(wù)器實驗?zāi)康模和ㄟ^簡易的jsp網(wǎng)頁設(shè)計,各模塊的組合,達到應(yīng)用集成的目的,了解數(shù)據(jù)集成、應(yīng)用集成、工具集成原理的簡單應(yīng)用,理論應(yīng)用于實踐。實驗內(nèi)容:以jsp頁面為前端,java服務(wù)器和數(shù)據(jù)庫為后臺,實現(xiàn)通過前端和后臺分開完成數(shù)據(jù)的增刪改查。本班設(shè)計了計科1402數(shù)據(jù)庫,其中包括五張表,分別為Course,Student,Stu_Course,Interest,Stu_Inter等,通過Eclipse編譯
2、器編寫jsp文件,以SQL SERVER為數(shù)據(jù)庫,實現(xiàn)前端和后臺的分離,簡單的可視化話的操作數(shù)據(jù)庫,達到客戶-服務(wù)器模式的簡單應(yīng)用,從中了解應(yīng)用集成的基本原理和方法,理論結(jié)合實踐。 實驗步驟:一 數(shù)據(jù)庫的建立數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)表sql語句:-表中數(shù)據(jù)的預(yù)覽:Course表:Interest表:Stu_Course表:Stu_Inter表:Studen表:二 登陸界面及其后臺代碼界面展示:登陸分為兩種登陸方式:一種是管理員登陸方式,一種為學(xué)生登陸,管理員默認賬號為root,密碼root123,學(xué)生則如同Student表中所記錄的一般,學(xué)生有修改自己信息的權(quán)限和查看其他人的信息的權(quán)限,管理則可以修改
3、系統(tǒng)中的系統(tǒng)屬性,如興趣愛好的種類,課程的種類和管理學(xué)生的權(quán)限,但不能管理學(xué)生所對應(yīng)的興趣和課程,因為那些都是學(xué)生的自由。接下來先講解下管理員的權(quán)限,采用的是Server-Client的形式,對于每一個頁面都有對應(yīng)的Server對應(yīng)服務(wù)。登陸界面交互布局:表單用于上傳表單到服務(wù)器中,做出不同反應(yīng)。后臺處理代碼:根據(jù)不同表單的數(shù)據(jù)進行賬號密碼的驗證。布局映射:三 管理員界面及其后臺代碼通過登陸管理員可進入查看全部信息的頁面main.jsp:從這里我們可以看到整個數(shù)據(jù)庫的信息,及其所對應(yīng)的內(nèi)容。界面核心代碼:代碼一:用于遍歷數(shù)據(jù)庫,數(shù)據(jù)的整合表單代碼(用于交互):服務(wù)器代碼:服務(wù)器代碼是根據(jù)前端用
4、戶的點擊不同而返回不同的處理辦法,主要起分流的作用。布局服務(wù)的映射:<servlet><servlet-name>root</servlet-name><servlet-class>serve.RootServer</servlet-class></servlet><servlet-mapping><servlet-name>root</servlet-name><url-pattern>/rootmakenl></servlet-mapping>用于在服務(wù)
5、器上映射對應(yīng)的服務(wù)程序Server。接下來分三個板塊說明,分別是興趣種類板塊,課程種類板塊,學(xué)生管理板塊A興趣管理板塊界面采用簡潔明了的方式進行布局布局代碼<核心>:填充表格:<%DatabaseHelper helper = DatabaseHelper.init();/數(shù)據(jù)庫操作String sql = "select * from Interest"List<Interest> list = helper.findInterestData(sql);for (int i = 0; i < list.size(); i+) out.p
6、rint("<tr>");out.print("<td>" + list.get(i).getId() + "</td>");out.print("<td>" + list.get(i).getInterest() + "</td>");out.print("<tr>");%>表單:<p><form type="post" action="rootim
7、ake">興趣:<input type="text" name="interest" id="interest"><button type="submit" name="button" id="ri_b" value="增加">增加興趣</button></form></p><p><form type="post" action="r
8、ootimake">刪除興趣id:<input type="text" name="interest_id" id="interest_id"><button type="submit" name="button" id="ri_b" value="刪除">刪除興趣</button></form></p><p><form type="post"
9、 action="rootimake">修改興趣id: <input type="text" name="interest_id" id="interest_id">修改為 : <input type="text" name="interest_value" id="interest_value"><button type="submit" name="button" id=&qu
10、ot;rx_b" value="修改">確認修改</button></form></p>功能為增刪改因為數(shù)據(jù)量說可以一次全部顯示,因此這里沒有查詢,主要功能的實現(xiàn)是在后臺,前端只是提供了服務(wù)的界面和交互信息的來源,主要的操作封裝在后臺實現(xiàn),用戶也只有刷新頁面才可以實現(xiàn)新加入的數(shù)據(jù)。服務(wù)代碼<核心>:protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOExc
11、eption / TODO Auto-generated method stubrequest.setCharacterEncoding("UTF-8");String button = request.getParameter("button");if (button.equals("增加") String interest = request.getParameter("interest");String sql = "insert into Interest (interest) values (&
12、#39;" + interest + "')"System.out.println(sql);Tool.Post(sql, request, response); else if (button.equals("刪除") String id = request.getParameter("interest_id");String sql = "delete from Interest where id='" + id + "'"System.out.printl
13、n(sql);Tool.Post(sql, request, response);sql = "delete from Stu_Inter where inter_id='" + id + "'"System.out.println(sql);Tool.Post(sql, request, response); else if (button.equals("修改") String id = request.getParameter("interest_id");String interest_va
14、lue = request.getParameter("interest_value");String sql = "update Interest set interest='" + interest_value + "' where id='" + id + "'"Tool.Post(sql, request, response);/工具包進行返回,Tool類下面進行詳述從代碼中可以看出來主要是根據(jù)表單中button按鈕的不同value來判斷進行什么操作,然后對應(yīng)操作種類進行數(shù)據(jù)
15、的操作和sql的編寫。B. 課程種類板塊布局代碼<核心>表格數(shù)據(jù)及布局:<table border="1" align="left" width="100%"><thead><tr><td>編號</td><td>愛好</td></tr></thead><%DatabaseHelper helper = DatabaseHelper.init();String sql = "select * from
16、Course"List<Course> list = helper.findCourseData(sql);for (int i = 0; i < list.size(); i+) out.print("<tr>");out.print("<td>" + list.get(i).getId() + "</td>");out.print("<td>" + list.get(i).getName() + "</td>&qu
17、ot;);out.print("<tr>");%></table>表單<便于說明后面的服務(wù)代碼>:<form type="post" action="rootcmake">課程:<input type="text" name="course" id="course"><button type="submit" name="button" id="rc_b&
18、quot; value="增加">增加課程</button></form></p><p><form type="post" action="rootcmake">刪除課程id:<input type="text" name="course_id" id="course_id"><button type="submit" name="button" id=
19、"rc_b" value="刪除">刪除課程</button></form></p><p><form type="post" action="rootcmake">修改課程id: <input type="text" name="course_id" id="course_id">修改為 : <input type="text" name="c
20、ourse_value" id="course_value"><br><button type="submit" name="button" id="rx_b" value="修改">確認修改</button></form>課程的增改刪原理同上。服務(wù)代碼:protected void doGet(HttpServletRequest request, HttpServletResponse response)throws Servl
21、etException, IOException / TODO Auto-generated method stubrequest.setCharacterEncoding("UTF-8");String button = request.getParameter("button");if (button.equals("增加") String name = request.getParameter("course");String sql = "insert into Course (name) val
22、ues ('" + name + "')"System.out.println(sql);Tool.Post(sql, request, response); else if (button.equals("刪除") String id = request.getParameter("course_id");String sql = "delete from Course where id='" + id + "'"System.out.println(
23、sql);Tool.Post(sql, request, response);sql = "delete from Stu_Course where cour_id='" + id + "'"System.out.println(sql);Tool.Post(sql, request, response); else if (button.equals("修改") String id = request.getParameter("course_id");String course_value =
24、request.getParameter("course_value");String sql = "update Course set name='" + course_value + "' where id='" + id + "'"System.out.println(sql);Tool.Post(sql, request, response);C學(xué)生管理板塊界面:界面代碼<核心>:<table border="1" width="
25、;100%"><tr><td>id</td><td>姓名(name)</td><td>密碼(password)</td><td>性別(sex)</td><td>電話(tel)</td></tr><%DatabaseHelper helper = DatabaseHelper.init();List<Student> list = helper.findStudentData("select * from St
26、udent");if (list != null) for (int i = 0; i < list.size(); i+) out.print("<tr>");out.print("<td>" + list.get(i).getId() + "</td>");out.print("<td>" + list.get(i).getName() + "</td>");out.print("<td>&qu
27、ot; + list.get(i).getPassword() + "</td>");out.print("<td>" + list.get(i).getSex() + "</td>");out.print("<td>" + list.get(i).getTel() + "</td>");out.print("</tr>");%></table>表單:學(xué)生也可以運用增刪改查,此處暫時不累
28、贅。四 學(xué)生界面及其后臺代碼學(xué)生界面包括查找和修改自己的內(nèi)容,為保護個人隱藏了密碼:界面代碼:鏈接代碼:<p><a href="sinterest.jsp">修改自己的興趣愛好</a> <a href="scourse.jsp">修改自己的課程</a><a href="slook.jsp">查找學(xué)生</a></p>以下也分成三個板塊進行功能說明:A個人查找點擊查找會進入查找個人界面:輸入學(xué)生姓名(如黃二):點擊查找:界面布局代碼就采用一個表
29、單的形式:<p><form type="post" action="look" >查找學(xué)生姓名:<input type="text" name="name" id="name"><button type="submit" name="button" id="si_b" value="name">確認查找</button></form></p
30、>通過提交數(shù)據(jù)到后臺再返回進行查找。服務(wù)代碼:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubrequest.setCharacterEncoding("UTF-8");/轉(zhuǎn)碼String name = request.getParameter("name");if(!name.equals("
31、;")System.out.println(name+"-");names=name;RequestDispatcher dis = request.getRequestDispatcher("/look.jsp");dis.forward(request,response);B個人課程界面:布局核心代碼:<table border="1" align="left" width="100%"><thead><tr><td>愛好</t
32、d></tr></thead><%DatabaseHelper helper = DatabaseHelper.init();String sql = "select * from Stu_Course where stu_id='" + CheckServer.id + "'"/sql語句 用于查找該學(xué)生對應(yīng)的課程String sql2 = "select * from Course" /sql語句,用于查找課程的全部種類List<Course> list_c = he
33、lper.findCourseData(sql2);List<Stu_Course> list_sc = helper.findStu_CourseData(sql);if (list_sc != null) /遍歷顯示該學(xué)生所有課程for (int i = 0; i < list_sc.size(); i+) int j = 0;while (list_c.get(j).getId() != list_sc.get(i).getCour_id() && j < list_c.size()j+;out.print("<tr>&quo
34、t;);if (j < list_c.size() out.print("<td>");out.print(list_c.get(j).getName();System.out.println(list_c.get(j).getName();out.print("</td>");out.print("</tr>");out.print("</table>");out.print("<h2>以下是全部課程</h2>");
35、out.print("<table border="1" align="left" width="100%">");out.print("<tr><td>編號</td>");out.print("<td>課程</td></tr>");if (list_c != null) /遍歷顯示課程種類for (int i = 0; i < list_c.size(); i+) out.print(
36、"<tr>");out.print("<td>" + list_c.get(i).getId() + "</td>");out.print("<td>" + list_c.get(i).getName() + "</td>");out.print("</tr>");out.print("</table>");%>表單代碼:<p><form type=
37、"post" action="studentchange">操作(1為增加,2為刪除):<input type="text" name="operate" id="operate">編號(輸入在課程的標(biāo)號):<input type="text" name="opid" id="opid"><button type="submit" name="button" i
38、d="si_b" value="修改課程">修改課程</button></form></p>接下來是增加自己的課程和刪除自己的課程:增加、刪除操作與個人興趣操作相同,所以此處不重復(fù),見下操作即可。C個人興趣界面:布局核心代碼:<table border="1" align="center" width="100%"><tr><td>愛好</td></tr><%DatabaseHelper
39、helper = DatabaseHelper.init();String sql = "select * from Stu_Inter where stu_id='" + CheckServer.id + "'" /遍歷該學(xué)生的所有興趣String sql2 = "select * from Interest" /遍歷所有興趣的種類List<Interest> list_i = helper.findInterestData(sql2);List<Stu_Inter> list_si = he
40、lper.findStu_InterData(sql);/當(dāng)該學(xué)生有興趣愛好時進行遍歷,顯示所有興趣愛好if (list_si != null) for (int i = 0; i < list_si.size(); i+) int j = 0;while (list_i.get(j).getId() != list_si.get(i).getInter_id() && j < list_i.size()j+;System.out.println(j);out.print("<tr>");if (j < list_i.size(
41、)out.print("<td>" + list_i.get(j).getInterest() + "</td>");out.print("</tr>");out.println("</table>");out.println("<h2>以下是全部興趣</h2>");out.println("<table border="1" align="left" width=&q
42、uot;100%">");out.println("<tr><td>編號</td>");out.println("<td>愛好</td></tr>");/當(dāng)官方提供的興趣愛好存在時進行便利顯示所有的種類if (list_i != null) for (int i = 0; i < list_i.size(); i+) out.print("<tr>");out.print("<td>" +
43、 list_i.get(i).getId() + "</td>");out.print("<td>" + list_i.get(i).getInterest() + "</td>");out.print("</tr>");out.println("</table>");%>以上代碼用于遍歷兩個數(shù)據(jù)表,一個是對應(yīng)關(guān)系表,一個是數(shù)據(jù)表,最終形成上面的兩個表格。表單代碼:<p><form type="post
44、" action="studentchange">操作(1為增加,2為刪除):<input type="text" name="operate" id="operate">編號(輸入在興趣的標(biāo)號):<input type="text" name="opid" id="opid"><button type="submit" name="button" id="si
45、_b" value="修改興趣">修改興趣</button></form></p>接下來是增加自己的興趣和刪除自己的興趣:增加:填寫好操作1和增加興趣的編號如:然后點擊按鈕,即可進行插入:操作成功后返回就看到多了一項數(shù)據(jù)。首頁也相同:刪除操作:填寫操作序號2,興趣標(biāo)號3,如:點擊按鈕即可進行刪除:兩類代碼同時采用了一個數(shù)據(jù)服務(wù)代碼:protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletExcep
46、tion, IOException / TODO Auto-generated method stubrequest.setCharacterEncoding("UTF-8"); /轉(zhuǎn)碼String button = request.getParameter("button"); /提取按鈕valueSystem.out.println(button);if (button.equals("修改興趣") /若按鈕中包含的信息是修改興趣,則進行此操作String operate = request.getParameter("
47、operate"); /提取操作數(shù)String opid = request.getParameter("opid"); /提取操作idif (operate.equals("1") /表示增加操作String sql = "select * from Stu_Inter where stu_id='" + CheckServer.id + "' and inter_id='" + opid+ "'" /sql語句,先進行搜索,保證用戶輸入的種類是否已經(jīng)
48、用戶擁有,防止重復(fù)記錄System.out.println(sql);DatabaseHelper databaseHelper = DatabaseHelper.init();if (databaseHelper.findStu_InterData(sql) = null) /若沒有則進行插入操作sql = "insert into Stu_Inter (stu_id,inter_id) values ('" + CheckServer.id + "','" + opid + "')"System.o
49、ut.println(sql);Tool.Post(sql, request, response); else return; else if (operate.equals("2") /若是刪除操作則進行刪除Tool.Post("delete from Stu_Inter where stu_id='" + CheckServer.id + "' and inter_id='" + opid + "'",request, response); else else if (butto
50、n.equals("修改課程") /若按鈕中包含的是修改課程操作,則進行此操作String operate = request.getParameter("operate");String opid = request.getParameter("opid");if (operate.equals("1") String sql = "select * from Stu_Course where stu_id='" + CheckServer.id + "' and c
51、our_id='" + opid+ "'" /sql語句,先進行搜索,保證用戶輸入的種類是否已經(jīng)用戶擁有,防止重復(fù)記錄System.out.println(sql);DatabaseHelper databaseHelper = DatabaseHelper.init();if (databaseHelper.findStu_CourseData(sql) = null) /若沒有則進行插入操作sql = "insert into Stu_Course (stu_id,cour_id) values ('" + Chec
52、kServer.id + "','" + opid + "')"System.out.println(sql);Tool.Post(sql, request, response); else return; else if (operate.equals("2") /執(zhí)行刪除操作Tool.Post("delete from Stu_Course where stu_id='" + CheckServer.id + "' and cour_id_id='&qu
53、ot; + opid + "'",request, response); else 五 數(shù)據(jù)庫操作類及工具類代碼總的工程結(jié)構(gòu):服務(wù)器布局xml:工具類(用于大多數(shù)程序表明操作成功):JavaBean類:數(shù)據(jù)庫訪問類:核心連接類<DatabaseHelper>:public class DatabaseHelper private static DatabaseHelper helper;statichelper=new DatabaseHelper();public static DatabaseHelper init()return helper;private static Statement stmt;private DatabaseHelper() /連接數(shù)據(jù)庫try Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn=DriverManager.getConnection("jdbc:sqlserver
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛東學(xué)院《中外舞蹈史(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 甘肅中醫(yī)藥大學(xué)《馬屬動物遺傳學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級英語上冊Module8ChoosingpresentsUnit2Sheoftengoestoconcerts教案含反思新版外研版
- 三年級數(shù)學(xué)下冊六認識分數(shù)第5課時練習(xí)五教案北師大版
- 三年級科學(xué)上冊第四單元人與水8水教案首師大版1
- 九年級化學(xué)上冊第四章生命之源-水4.3質(zhì)量守恒定律同步練習(xí)新版粵教版
- 小學(xué)生場景描寫課件
- 高二物理期末模擬卷(考試版A3)【測試范圍:人教版選必一選必二第一、二章】(新八省通-用)
- 2025年6月日歷表(含農(nóng)歷-周數(shù)-方便記事備忘)
- 傳染病防治的法律法規(guī)-課件
- 北京市朝陽區(qū)2024-2025學(xué)年高二上學(xué)期期末考試生物試卷(含答案)
- 湖南2025年湖南電氣職業(yè)技術(shù)學(xué)院招聘14人歷年參考題庫(頻考版)含答案解析
- 生物除臭系統(tǒng)施工方案
- DB51T 1069-2010 四川泡菜生產(chǎn)規(guī)范
- 2024云南保山電力股份限公司招聘(100人)高頻難、易錯點500題模擬試題附帶答案詳解
- 2024年江蘇省高中學(xué)業(yè)水平合格性考試數(shù)學(xué)試卷試題(答案詳解1)
- 學(xué)前兒童數(shù)學(xué)教育智慧樹知到期末考試答案章節(jié)答案2024年湖州師范學(xué)院
- 2024年中南出版?zhèn)髅郊瘓F股份有限公司招聘筆試參考題庫含答案解析
- 超星爾雅學(xué)習(xí)通《生命安全與救援》章節(jié)測試含答案
- 三級公共營養(yǎng)師實踐技能知識點.(良心出品必屬精品)
- 語文九年級寒假作業(yè)任務(wù)表
評論
0/150
提交評論