版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
...wd......wd......wd...一、實驗題目基于JSP/Servlet設(shè)計、實現(xiàn)一個課程管理Web應(yīng)用程序,該程序?qū)崿F(xiàn)如下功能。有登錄頁面,登錄用帳號密碼保存在數(shù)據(jù)庫中,合法登錄后進(jìn)入學(xué)習(xí)成績管理頁面。否則給出錯誤提示。在學(xué)習(xí)成績管理頁面可添加一門課程的成績,添加內(nèi)容包括:課程編號、課程名稱、學(xué)生姓名、課程成績等內(nèi)容。添加后信息保存在數(shù)據(jù)庫中??筛鶕?jù)課程名稱和學(xué)生姓名進(jìn)展查詢??蓜h除和修改課程信息的內(nèi)容。〔即刪除一條課程記錄或修改課程記錄中的某一字段〕。二、程序設(shè)計1.數(shù)據(jù)庫設(shè)計:經(jīng)過分析可知,改程序主要有如下的實體對象,用戶、課程、學(xué)生三個實體對象。因此該數(shù)據(jù)庫主要有四張表,分別如下:連接數(shù)據(jù)庫的類設(shè)計如下:packagedatabase;importjava.sql.Connection;importjava.sql.DriverManager;publicclassDataBaseConnection{ publicstaticConnectioncreateDBConn(){ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connectionconn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Student_system","supiyun","supiyun1989828"); returnconn; }catch(Exceptione){ e.printStackTrace(); returnnull; } } }2.程序界面設(shè)計:通過程序的要求可知該程序有jsp頁面或Html頁面以及servlet組成。Jsp主要負(fù)責(zé)與用戶的交互實現(xiàn)視圖頁面的功能,而servlet主要負(fù)責(zé)頁面跳轉(zhuǎn)控制以及數(shù)據(jù)處理的功能。由實驗的要求具體的實驗設(shè)計如下:A、用戶通過一個登陸頁面,輸入用戶名、密碼,然后該jsp頁面將請求發(fā)送給處理用戶身份驗證的servlet,該servlet獲取數(shù)據(jù)庫的信息進(jìn)展校驗,如果用戶的身份合法則跳轉(zhuǎn)到應(yīng)用程序的主界面,否則給出錯誤的提示信息,并且要求用戶重新輸入用戶名和密碼重新登陸。登陸頁面的設(shè)計圖如下所示:B、對于程序的主界面主要實現(xiàn)對于用戶需要的導(dǎo)航功能以及實現(xiàn)具體的操作功能。該程序的主界面主要有三個Html的Framset構(gòu)成,分別為topFrame,leftFrame,mainFrame組成,leftFrame主要實現(xiàn)程序的導(dǎo)航,而mainFrame具體的實現(xiàn)程序的功能。主界面設(shè)計界面如下:C、具體的功能設(shè)計如下<1>學(xué)生個人成績查詢:學(xué)生通過輸入學(xué)號可以查詢學(xué)生所學(xué)科目的所以成績。<2>課程管理:該模塊主要實現(xiàn)對課程的新增、已有課程的查詢以及對每門課程成績的錄入功能的導(dǎo)航。課程的新增:如有新的課程需要新增,則用戶通過提示輸入課程編號、課程名稱、授課教師名字實現(xiàn)課程的新增??颇砍煽児芾恚和ㄟ^該功能,用戶可以實現(xiàn)對指定的科目的成績管理,修改或者新增功能。用戶可以查詢對應(yīng)的科目增加或修改成績。查看已有課程:通過查看已有的科目可以實現(xiàn)對已有科目的信息的修改、刪除以及學(xué)生成績添加、修改的功能。<3>學(xué)生信息管理:通過該模塊可以實現(xiàn)對學(xué)生個人信息的查詢、新增、修改的功能。學(xué)生個人信息查詢:輸入學(xué)號或姓名可以查看學(xué)生的根本信息。學(xué)生個人信息添加:根據(jù)提示輸入學(xué)生的各項根本,提交添加學(xué)生信息。學(xué)生信息修改:輸入學(xué)生學(xué)號或姓名查找到學(xué)生信息,對學(xué)生信息進(jìn)展修改提交。<4>退出登錄:完畢會話,返回至登錄頁面。3.servlet設(shè)計:Servlet主要負(fù)責(zé)對頁面請求的跳轉(zhuǎn)和對數(shù)據(jù)庫的操作功能。該程序主要有如下的servlet,分別為:1.AddCourse_Serverlet:添加課程packageservlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet..Servlet;importjavax.servlet..ServletRequest;importjavax.servlet..ServletResponse;importdatabase.DataBaseConnection;importjava.sql.*;publicclassAddCourse_ServerletextendsServlet{ publicAddCourse_Serverlet(){ super(); } publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } publicvoiddoGet(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{ this.doPost(request,response); } publicvoiddoPost(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{ Connectionconn=DataBaseConnection.createDBConn(); PrintWriterout=response.getWriter(); Statementst=null; try{st=conn.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } Stringnumber; Stringname; Stringteacher; number=request.getParameter("number"); name=request.getParameter("name"); teacher=request.getParameter("teacher_name"); if(number!=null&&number.length()!=0){ number=newString(number.trim().getBytes("ISO-8859-1"),"utf-8"); } if(name!=null&&name.length()!=0){ name=newString(name.trim().getBytes("ISO-8859-1"),"utf-8"); } if(teacher!=null&&teacher.length()!=0){ teacher=newString(teacher.trim().getBytes("ISO-8859-1"),"utf-8"); } try{ st.executeUpdate("insertintoCourse(Course_NO,Course_Name,Teacher_Name)values('"+number+"','"+name+"','"+teacher+"')"); }catch(SQLExceptione){ e.printStackTrace(); } out.println("success!"); } publicvoidinit()throwsServletException{ //Putyourcodehere }}2.addStudentInformation:添加課程信息packageservlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet..Servlet;importjavax.servlet..ServletRequest;importjavax.servlet..ServletResponse;importjava.sql.*;importdatabase.DataBaseConnection;publicclassaddStudentInformationextendsServlet{ publicaddStudentInformation(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } publicvoiddoGet(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{ this.doPost(request,response); } publicvoiddoPost(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{ Connectionconn=DataBaseConnection.createDBConn(); PrintWriterout=response.getWriter(); Statementst=null; try{st=conn.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } Stringnumber=null; Stringname=null; Stringsclass=null; Stringsex=null; Stringacademy=null; Stringprofessional=null; Stringtime=null; number=request.getParameter("number"); name=request.getParameter("name"); sclass=request.getParameter("sclass"); sex=request.getParameter("sex"); academy=request.getParameter("academy"); professional=request.getParameter("professional"); time=request.getParameter("time"); if(number!=null&&number.length()!=0){ number=newString(number.trim().getBytes("ISO-8859-1"),"utf-8"); } if(name!=null&&name.length()!=0){ name=newString(name.trim().getBytes("ISO-8859-1"),"utf-8"); } if(sclass!=null&&sclass.length()!=0){ sclass=newString(sclass.trim().getBytes("ISO-8859-1"),"utf-8"); } if(sex!=null&&sex.length()!=0){ sex=newString(sex.trim().getBytes("ISO-8859-1"),"utf-8"); } if(academy!=null&&academy.length()!=0){ academy=newString(academy.trim().getBytes("ISO-8859-1"),"utf-8"); } if(professional!=null&&professional.length()!=0){ professional=newString(professional.trim().getBytes("ISO-8859-1"),"utf-8"); } if(time!=null&&time.length()!=0){ time=newString(time.trim().getBytes("ISO-8859-1"),"utf-8"); } try{ st.executeUpdate("insertintoStudentvalues('"+number+"','"+name+"','"+sclass+"','"+sex+"','"+academy+"','"+professional+"','"+time+"')"); }catch(SQLExceptione){ e.printStackTrace(); } out.println("success!"); } publicvoidinit()throwsServletException{ //Putyourcodehere }}3.CourseManagement:課程操作控制packageservlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.SQLException;importjava.sql.Statement;importjavax.servlet.ServletException;importjavax.servlet..Servlet;importjavax.servlet..ServletRequest;importjavax.servlet..ServletResponse;importdatabase.DataBaseConnection;publicclassCourseManagementextendsServlet{ publicCourseManagement(){ super(); } publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } publicvoiddoGet(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{ this.doPost(request,response); } publicvoiddoPost(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{ Stringoperation; StringID; Stringnumber; Stringname; Stringteacher_name; response.setContentType("text/html"); Connectionconn=DataBaseConnection.createDBConn(); PrintWriterout=response.getWriter(); Statementst=null; try{st=conn.createStatement(); }catch(SQLExceptione){ e.printStackTrace(); } operation=request.getParameter("operation"); ID=request.getParameter("id"); number=request.getParameter("number"); name=request.getParameter("name"); teacher_name=request.getParameter("teacher_name"); if(ID!=null&&ID.length()!=0){ ID=newString(ID.getBytes("ISO-8859-1"),"utf-8"); } if(number!=null&&number.length()!=0){ number=newString(number.getBytes("ISO-8859-1"),"utf-8"); } if(name!=null&&name.length()!=0){ name=newString(name.getBytes("ISO-8859-1"),"utf-8"); } if(teacher_name!=null&&teacher_name.length()!=0){ teacher_name=newString(teacher_name.getBytes("ISO-8859-1"),"utf-8"); } if(operation.equals("delete")){ try{ st.execute("deletefromCoursewhereCourse_NO='"+ID+"'"); }catch(SQLExceptione){ e.printStackTrace(); out.print("deletefail!"); } } if(operation.equals("edit")){ response.sendRedirect("CourseEdit.jsp?id="+ID+""); } if(operation.equals("update")){ try{st.executeUpdate("updateCoursesetCourse_Name='"+name+"',Teacher_Name='"+teacher_name+"'whereCourse_No='"+number+"'"); }catch(Exceptione){ e.printStackTrace(); } } } publicvoidinit()throwsServletException{ //Putyourcodehere }}4.Login_control:登錄控制packageservlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.servlet.ServletException;importjavax.servlet..Servlet;importjavax.servlet..ServletRequest;importjavax.servlet..ServletResponse;importjavax.servlet..Session;importdatabase.DataBaseConnection;publicclassLogin_controlextendsServlet{ publicLogin_control(){ super(); } publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } publicvoiddoGet(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{this.doPost(request,response); } publicvoiddoPost(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=utf-8"); inttimes=0; Stringtemp=null; finalPrintWriterout=response.getWriter(); finalConnectionconn=DataBaseConnection.createDBConn();Sessionsession=request.getSession(); Statementselect; ResultSetrs=null; Stringname=request.getParameter("Name"); if(name!=null&&name.length()!=0){ name=newString(name.getBytes("ISO-8859-1"),"utf-8"); } Stringpassword=request.getParameter("Password"); if(password!=null&&password.length()!=0){ password=newString(password.getBytes("ISO-8859-1"),"utf-8"); } try{ select=conn.createStatement(); rs=select.executeQuery("selectPasswordfromUserswhereU_Name='"+name+"'"); }catch(finalExceptione){ e.printStac
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家風(fēng)家訓(xùn)先進(jìn)事跡材料(15篇)
- 易錯題27 古詩文默寫之開放性默寫題-不會在開放中找限制高考語文備戰(zhàn)2025年高考易錯題(新高考專用)含解析
- 個人理財基礎(chǔ)知識
- 手術(shù)護(hù)理指南之截石位
- 初級會計實務(wù)-初級會計職稱2021年真題
- 2024年中國睡眠呼吸暫停藥物行業(yè)發(fā)展現(xiàn)狀、市場前景、投資方向分析報告(智研咨詢發(fā)布)
- 大子午擴(kuò)張低壓渦輪低工況流動匹配機理研究
- 二零二五年度品牌授權(quán)及營銷推廣合同3篇
- 薄弱環(huán)節(jié)護(hù)理干預(yù)結(jié)合無痛化管理對老年結(jié)直腸癌根治術(shù)患者疼痛及并發(fā)癥的影響
- 二零二五年度道路建設(shè)項目合同履約保證金協(xié)議3篇
- 2024-2025學(xué)年北京石景山區(qū)九年級初三(上)期末語文試卷(含答案)
- 第一章 整式的乘除 單元測試(含答案) 2024-2025學(xué)年北師大版數(shù)學(xué)七年級下冊
- JD37-009-2024 山東省存量更新片區(qū)城市設(shè)計編制技術(shù)導(dǎo)則
- 中國高血壓防治指南(2024年修訂版)
- JT-T-390-1999突起路標(biāo)行業(yè)標(biāo)準(zhǔn)
- 《也是冬天-也是春天》
- 初中音樂聽課筆記20篇
- 央國企信創(chuàng)化與數(shù)字化轉(zhuǎn)型規(guī)劃實施
- 商標(biāo)基礎(chǔ)知識課件
- 涉詐風(fēng)險賬戶審查表
- 2023年大學(xué)英語四級考試模擬真題及答案
評論
0/150
提交評論