




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
設(shè)計(jì)內(nèi)容與要求問(wèn)題描述(1)給系統(tǒng)用戶分成兩種角色:注冊(cè)用戶和管理員。能根據(jù)角色的不同來(lái)顯示或隱藏管理功能的鏈接,即權(quán)限不同,可使用系統(tǒng)的功能也不同。(2)實(shí)現(xiàn)用戶注冊(cè)和登錄功能。(3)能從用戶登陸界面獲取用戶名和密碼。(4)能連接MySQL數(shù)據(jù)庫(kù)來(lái)查詢驗(yàn)證用戶名和密碼的有效性。運(yùn)行環(huán)境要求正確安裝、配置和運(yùn)行Tomcat服務(wù)器。正確安裝、配置和運(yùn)行SQLServer服務(wù)器。正確安裝、配置struts和SQLServer的JDBC驅(qū)動(dòng)程序。技術(shù)要求要求分別使用三種不同的方式來(lái)實(shí)現(xiàn)。Servlet和html頁(yè)面結(jié)合的技術(shù)。JSP技術(shù)和Java輔助類結(jié)合。struts應(yīng)用程序框架。利用面向?qū)ο蟮姆椒ā⒕幊趟枷雭?lái)完成系統(tǒng)的設(shè)計(jì);在設(shè)計(jì)的過(guò)程中,建立清晰的類層次;在系統(tǒng)設(shè)計(jì)中要分析和定義各個(gè)類,每個(gè)類中要有各自的屬性和方法;要求理解MVC設(shè)計(jì)模式和運(yùn)用struts框架來(lái)實(shí)現(xiàn)系統(tǒng)功能的模塊化設(shè)計(jì)。(1) 用戶注冊(cè):搜集用戶個(gè)人信息,確定唯一的用戶標(biāo)識(shí),并把信息寫入數(shù)據(jù)庫(kù)中。用戶將看到一個(gè)注冊(cè)屏幕,包含3個(gè)字段:用戶名,密碼和密碼確認(rèn)。成功的注冊(cè)要求兩次密碼相符。如果注冊(cè)成功,控制將轉(zhuǎn)向一個(gè)頁(yè)面,顯示注冊(cè)成功。如果兩次輸入密碼不同,控制流將轉(zhuǎn)向一個(gè)顯示失敗的頁(yè)面。(2) 用戶登錄:根據(jù)用戶輸入的標(biāo)識(shí),訪問(wèn)數(shù)據(jù)庫(kù),判斷用戶是否為注冊(cè)用戶;如果是則顯示登錄成功頁(yè)面,該頁(yè)面包含有用戶名的歡迎信息;否則提示用戶輸入錯(cuò)誤,重新輸入或注冊(cè)為新用戶。要求頁(yè)面有合適的表單,對(duì)用戶輸入有客戶端的數(shù)據(jù)驗(yàn)證。比如用戶名不能為空。設(shè)計(jì)說(shuō)明2.1系統(tǒng)功能分析1、用戶登錄,跳轉(zhuǎn)至相應(yīng)的成功或失敗界面,用戶名與密碼都不能為空2、用戶注冊(cè),跳轉(zhuǎn)至相應(yīng)的成功或失敗界面,2次密碼輸入一致。3、管理員登錄,跳轉(zhuǎn)至相應(yīng)的成功或失敗界面。4、三種不同的實(shí)現(xiàn)方式。2.2系統(tǒng)功能描述用戶登錄該系統(tǒng),用可以通過(guò)注冊(cè)界面注冊(cè)用戶名和密碼,并同時(shí)完成身份信息的錄入然后可以實(shí)現(xiàn)用戶登錄。同時(shí)另一角色管理員也可實(shí)現(xiàn)相應(yīng)的登錄操作,通過(guò)連接mysql數(shù)據(jù)庫(kù)來(lái)查詢驗(yàn)證用戶名和密碼的有效性。根據(jù)驗(yàn)證結(jié)果轉(zhuǎn)向不同的頁(yè)面進(jìn)行處理,并給出相應(yīng)提示。2.3功能模塊設(shè)計(jì)根據(jù)功能分析,網(wǎng)絡(luò)購(gòu)物系統(tǒng)用戶登陸管理可以分為三個(gè)模塊,每一個(gè)模塊相應(yīng)的實(shí)現(xiàn)了具體的功能。Servlet和html頁(yè)面結(jié)合的技術(shù)3.1工程目錄結(jié)構(gòu)一|j2Z7shejiE)"SKC[E-ffixiit:±n0-[Tjlogins.java?■■[Tjregis注+0\、TRESystemLibr:±t_y[FilyEclipse6.5±)-QiJavaEE5Libr:±t-ies一巴RefHrerLCHilLibr:ifies由…盂imysql_cunzLectur_java_5.1.6_bin一lWebRuat田…凸META-INFE)-&WEB-INF| | |…&lib|Xfweb.xmlH*lugin.htmlH*regietmrE.html H3.2內(nèi)部文件登錄界面login.html,含functionvalidate()函數(shù)驗(yàn)證用戶名與密碼不能為空。用戶注冊(cè)界面registers.html,含functioncheck()函數(shù)驗(yàn)證2次密碼輸入的一致性。logins.java處理用戶登錄信息,含有連接數(shù)據(jù)庫(kù)的代碼,并連接到數(shù)據(jù)庫(kù),并顯示歡迎的界面regist.java處理用戶注冊(cè)信息,含有連接數(shù)據(jù)庫(kù)的代碼,并連接到數(shù)據(jù)庫(kù),并顯示歡迎的界面mysql的驅(qū)動(dòng):連接MyEclipse和MySQL。關(guān)鍵代碼Login.html<html><head><title>login.html</title><scriptlanguage="javascript">functionvalidate(form1){if(form1.usernamel.value.length==0){alert("用戶名不能為空!");form1.usernamel.focus();returnfalse;}if(form1.passwordl.value.length==0){alert("密碼不能為空!");form1.passwordl.focus();returnfalse;}}</script></head><bodybgcolor="red"><formname="form1"method="post"action="servlet/logins"onsubmit="returnvalidate(this)">用戶名:<inputtype="text"name="usernamel"><br>密碼: <inputtype="password"name="passwordl"><br><inputtype="submit"value="登錄"><inputtype="reset"value="清空"/><br><ahref="registers.html"> 注冊(cè)</a></form></body></html>Registers.html<html><head><title>無(wú)標(biāo)題文檔</title><scriptlanguage="javascript">functioncheck(form2){if(document.form2.passwordr.value!=document.form2.passwordr1.value){alert("2次密碼不一致");returnfalse;}}</script></head><bodybgcolor="green"><p>用戶注冊(cè)界面</p><formname="form2"method="post"action="servlet/register"onsubmit="returncheck(this)"> 用戶名:<inputname="usernamer"type="text"size="15"maxlength="15")/><br/> 密碼:<inputname="passwordr"type="password"size="15"maxlength="15"/><br/>確認(rèn)密碼:<inputname="passwordr1"type="password"size="15"maxlength="15"/><br/> <inputtype="submit"value="提交"/><inputtype="reset"value="清空"/></form></body></html>Logins.javapackagexufan;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;importjava.sql.*;publicclassloginsextendsHttpServlet{privatestaticfinallongserialVersionUID=549311771937809546L;publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();out.println("<html><body>");Stringurl="jdbc:mysql://localhost/mydatabase";Connectionconn;ResultSetrs;Statementstmt;Stringusernamel=request.getParameter("usernamel");Stringpasswordl=request.getParameter("passwordl");Stringsql="selectusernamefromxufan";try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(url,"root","123");stmt=conn.createStatement();rs=stmt.executeQuery(sql);while(true){if(rs.next()){if(usernamel.equals(rs.getString(1))){if(rs.getString(1).equals("aaa")){out.println("歡迎你管理員!<br>");out.println("管理員名字為:"+usernamel+"<br>");out.println("管理員密碼為:"+passwordl+"<br>");break;}out.print("歡迎普通用戶登錄成功!<br>");out.println("用戶名為:"+usernamel+"<br>");out.println("密碼為:"+passwordl+"<br>");break;}}else{out.print("用戶不存在!");break;}return;}catch(SQLExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}out.println("</body><html>");}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}}Register.javapackagexufan;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;importjava.sql.*;publicclassregisterextendsHttpServlet{privatestaticfinallongserialVersionUID=549311771937809546L;publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();out.println("<html><body>");Stringurl="jdbc:mysql://localhost/mydatabase";Connectionconn;ResultSetrs;Statementstmt;Stringusernamer=request.getParameter("usernamer");Stringpasswordr=request.getParameter("passwordr");Stringsql="insertintoxufanvalues('"+usernamer+"','"+passwordr+"');";Stringsql1="selectusernamefromxufan";try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(url,"root","123");stmt=conn.createStatement();rs=stmt.executeQuery(sql1);while(true){if(rs.next()){if(usernamer.equals(rs.getString(1))){out.println("用戶已經(jīng)存在!請(qǐng)重新注冊(cè)");break;}}else{stmt.executeUpdate(sql);out.println("恭喜你注冊(cè)成功!<br>");out.println("用戶名為:"+usernamer+"<br>");out.println("密碼為:"+passwordr+"<br>");break;}}return;}catch(SQLExceptione){e.printStackTrace();out.println("程序有誤!");}catch(ClassNotFoundExceptione){e.printStackTrace();out.println("程序有誤!");}out.println("</body></html>");}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}}JSP技術(shù)和Java輔助類結(jié)合4.1工程目錄結(jié)構(gòu)i-
由“.
白...i-
由“.
白...i-JILE2嚴(yán)七珂Libr:±t_y[FilyEclipse6.51JavaEE5Libr:±t-iesIRefHrerLCHilLibr:ifiesmmysql_cunzLectur_java_5.1.6_bin、WebRoot凸META-INF&WEB-ItTFj*i:hecklagiiLjsp『i:he匚kregister.jspj*lugin.jspj*regietEtm.jsp4.2內(nèi)部各類文件login.jsp是用戶登錄界面,functionvalidate()函數(shù)用來(lái)驗(yàn)證用戶名密碼都不能為空。registers.jsp是用戶注冊(cè)界面,functioncheck()函數(shù)來(lái)驗(yàn)證2次密碼輸入是否一致。checklogin.jsp用戶登錄處理界面,連接數(shù)據(jù)庫(kù),以及顯示登錄成功的信息。checkregister.jsp用戶注冊(cè)登錄成功界面,連接數(shù)據(jù)庫(kù),和顯示注冊(cè)成功的信息。4.2關(guān)鍵代碼Login.jsp<%@pagelanguage="java"pageEncoding="utf-8"%><html><head><title>MyJSP'login.jsp'startingpage</title><scriptlanguage="javascript">functionvalidate(form1){if(form1.usernamel.value.length==0){alert("用戶名不能為空!");form1.usernamel.focus();returnfalse;}if(form1.passwordl.value.length==0){alert("密碼不能為空!");form1.passwordl.focus();returnfalse;}}</script></head><bodybgcolor="green"><formname="form1"method="post"action="checklogin.jsp"onsubmit="returnvalidate(this)">用戶登錄界面<br>用戶名:<inputtype="text"name="usernamel"><br>密 碼:<inputtype="password"name="passwordl"><br><inputtype="submit"value="登錄"><inputtype="reset"value="清空"/><ahref="registers.jsp">注冊(cè)</a></form></body></html>Registers.jsp<%@pagelanguage="java"pageEncoding="utf-8"%><html><head><title>MyJSP'registers.jsp'startingpage</title><scriptlanguage="javascript">functioncheck(form2){if(document.form2.passwordr.value!=document.form2.passwordr1.value){alert("2次密碼不一致");returnfalse;}}</script></head><bodybgcolor="green"><formname="form2"method="post"action="checkregister.jsp"onsubmit="returncheck(this)">用戶注冊(cè)界面<br>用戶名:<inputname="usernamer"type="text"size="15"maxlength="15") /><br>密 碼:<inputname="passwordr"type="password"size="15"maxlength="15"/><br>確認(rèn)密碼:<inputname="passwordr1"type="password"size="15"maxlength="15"/><br><inputtype="submit"value="提交"/><inputtype="reset"value="清空"/></form></body></html>Checklogin.jsp<%@pagelanguage="java"pageEncoding="utf-8"%><%@pageimport="java.sql.*"%><html><head><title>MyJSP'checklogin.jsp'startingpage</title></head><body><%Stringurl="jdbc:mysql://localhost/mydatabase";Connectionconn;ResultSetrs;Statementstmt;Stringusernamel=request.getParameter("usernamel");Stringpasswordl=request.getParameter("passwordl");Stringsql="selectusernamefromxufan";try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(url,"root","123");stmt=conn.createStatement();rs=stmt.executeQuery(sql);while(true){if(rs.next()){if(usernamel.equals(rs.getString(1))){if(rs.getString(1).equals("aaa")){out.println("歡迎你管理員!<br>");out.println("管理員名字為:"+usernamel+"<br>");out.println("管理員密碼為:!"+usernamel+"<br>");break;}out.print("歡迎你登錄成功!<br>");out.println("用戶名為:"+usernamel+"<br>");out.println("密碼為:!"+usernamel+"<br>");break;}}else{out.print("用戶不存在!");break;}}return;}catch(SQLExceptione){out.println("有誤");}catch(ClassNotFoundExceptione){e.printStackTrace();out.println("程序有誤!");}%></body></html>checkregister.jsp<%@pagelanguage="java"pageEncoding="utf-8"%><%@pageimport="java.sql.*"%><html><head><title>MyJSP'checkregister.jsp'startingpage</title></head><body><%Stringurl="jdbc:mysql://localhost/mydatabase";Connectionconn;ResultSetrs;Statementstmt;Stringusernamer=request.getParameter("usernamer");Stringpasswordr=request.getParameter("passwordr");Stringsql="insertintoxufanvalues('"+usernamer+"','"+passwordr+"');";Stringsql1="selectusernamefromxufan";try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(url,"root","123");stmt=conn.createStatement();rs=stmt.executeQuery(sql1);while(true){if(rs.next()){if(usernamer.equals(rs.getString(1))){out.println("用戶已經(jīng)存在!請(qǐng)重新注冊(cè)");break;}}else{stmt.executeUpdate(sql);out.println("恭喜你注冊(cè)成功!<br>");out.println("用戶名為:"+usernamer+"<br>");out.println("密碼為:"+passwordr+"<br>");break;}}return;}catch(SQLExceptione){e.printStackTrace();out.println("程序有誤!");}catch(ClassNotFoundExceptione){e.printStackTrace();
out.println(out.println("程序有誤!");%></body></html>struts應(yīng)用程序框架5.1工程目錄結(jié)構(gòu)sheji£trut-鍔srccom.y:n±fcomp^i\y.I$-jRi:om.yciiifi:omp:aiLy.etrute.action?-JTjLuginA匚tiun.java+ 0RegiwterAction.javaIH--JRi:om.yMilt-1:omp:iiLy.etrut呂.form+0LugiriFarm.java0-jTjRegisthkForm.javaESystmmLibr:ii-y[FilyEclipse6.5,vaEE5Libr:±fieskut呂1.2Libr:±i-iesterencedLibr:ii-iesmysql_i:口nre?:tur_java_5.1.6_bin-WebRuat宙GMETA-I1IF白??&WEB-I1TF| |…&libT*呂truts_bH:dTL.tld瑁*wtriitE_config.xmlT*弓trutE_htmLtldT*呂truts_lugic.tldT*wtmtE-nestmd..tld??話EtrutE-tiles.tld??…[x]v:ilidatui—riilee.xml|Xfweb.xmlj"aiiniirL.jspj*failm-H.jspj*iailijErel.jspj*lugirL.jspj*register.jspJ*EUCCfiEE.jEpJ*EUCi:eee1.jEp5.2內(nèi)部各類文件login.jsp是用戶登錄界面,函數(shù)checkLogin()來(lái)驗(yàn)證用戶名密碼不能為空。Register.jsp是用戶注冊(cè)界面,checkPass()函數(shù)來(lái)驗(yàn)證2次密碼的輸入是否一致。普通用戶登陸和注冊(cè)成功界面success.jsp,success1.jsp普通用戶登陸和注冊(cè)失敗界面failure.jsp,failure1.jsp管理員登陸成功界面admin.jspStruts的配置文件:struts—config.xmlAction包里的2個(gè)java類:LoginAction.java:用來(lái)處理用戶的登錄動(dòng)作,含有連接數(shù)據(jù)庫(kù)的代碼,mappingfindforward(),用來(lái)跳轉(zhuǎn)到相應(yīng)的成功或失敗的頁(yè)面。RegisterAction.java:用來(lái)處理用戶的注冊(cè)操作,含有連接數(shù)據(jù)庫(kù)的代碼,mappingfindforward(),用來(lái)跳轉(zhuǎn)到相應(yīng)的成功或失敗的頁(yè)面。Form包里的2個(gè)java類:LoginForm.java:它實(shí)際是一個(gè)java類,用來(lái)捕獲登錄用戶通過(guò)請(qǐng)求傳送到web應(yīng)用的請(qǐng)求參數(shù)。RegisterForm.java:它實(shí)際是一個(gè)java類,用來(lái)捕獲注冊(cè)用戶通過(guò)請(qǐng)求傳送到web應(yīng)用的請(qǐng)求參數(shù)。5.3關(guān)鍵代碼login.jsp<%@pagelanguage="java"pageEncoding="UTF-8"%><%Stringpath=request.getContextPath();%><html><head><title>ve</title><SCRIPTtype="text/javascript">functioncheckLogin(){varloginId=document.LoginForm.id;varloginPwd=document.LoginForm.loginPwd;if(loginId.value==""){alert("請(qǐng)輸入用戶名");document.LoginForm.id.focus();}elseif(loginPwd.value==""){alert("請(qǐng)輸入用戶密碼");document.LoginForm.loginPwd.focus();}else{document.LoginForm.submit();}}</SCRIPT></head><bodybgcolor="green"><FORMaction="<%=request.getContextPath()%>/login.do"method="post"name="LoginForm"onSubmit="returncheckLogin()">用戶登錄界面<br>用戶名:<INPUTtype="text"name="id"id="id"><br>密 碼:<INPUTtype="password"name="loginPwd"id="loginPwd"><br> <INPUTtype="submit"name="submit"value="登錄"onClick="checkLogin()"><INPUTtype="button"value="注冊(cè)"onclick="window.location.href='register.jsp'"/><br></FORM></body></html>register.jsp<%@pagelanguage="java"pageEncoding="UTF-8"%><%Stringpath=request.getContextPath();%><html><head><title>注冊(cè)</title><SCRIPTlanguage="javascript">functioncheckPass(){varpass=document.RegisterForm.loginPwd;varrpass=document.RegisterForm.txtRPass;if(pass.value==""){alert("密碼不能為空");pass.focus();returnfalse;}if(rpass.value!=pass.value){alert("確認(rèn)密碼與密碼輸入不一致");rpass.select();returnfalse;}returntrue;}</SCRIPT></head><bodybgcolor="green"><formaction="<%=request.getContextPath()%>/register.do"method="post"name="RegisterForm"onSubmit="returncheckPass()">用戶注冊(cè)界面<br>用戶名<INPUTtype="text"name="id"id="id"size="20"><br>密碼<INPUTtype="password"name="loginPwd"id="loginPwd"size="20"><br>確認(rèn)密碼<INPUTtype="password"name="txtRPass"size="20"><br><INPUTtype="submit"name="submit"value="提交注冊(cè)"><INPUTtype="button"value="返回"onclick="window.location.href='login.jsp'"/></form></body></html>success.jsp<%@pagelanguage="java"pageEncoding="UTF-8"%><%@taglibprefix="c"uri="/jsp/jstl/core"%><html><head><title>登錄成功</title〉</head><body>歡迎普通用戶,登錄成功!<br>用戶名為:<c:outvalue="${param.id}"/><br>密碼為:<c:outvalue="${param.loginPwd}"/><br></body></html>failure.jsp<%@pagelanguage="java"pageEncoding="UTF-8"%><html><head><title>登錄失敗</title〉</head><body>對(duì)不起,登錄失?。≌?qǐng)重新登錄</body></html>success1.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><html><head><title>MyJSP'successl.jsp'startingpage</title></head><body>恭喜你,注冊(cè)成功!<br></body></html>failure1.jsp<%@pagelanguage="java"pageEncoding="utf-8"%><%Stringpath=request.getContextPath();%><html><head><title>MyJSP'failure1.jsp'startingpage</title></head><body>對(duì)不起,注冊(cè)失??!請(qǐng)重新注冊(cè)<br></body></html>admin.jsp<%@pagelanguage="java"pageEncoding="utf-8"%><%@taglibprefix="c"uri="/jsp/jstl/core"%><%Stringpath=request.getContextPath();%><html><head><title>MyJSP'admin.jsp'startingpage</title></head><body>歡迎你,管理員!<br>管理員名字為:<c:outvalue="${param.id}"/><br>管理員密碼為:<c:outvalue="${param.loginPwd}"/><br></body></html>LoginForm.javapackagecom.yourcompany.struts.form;importorg.apache.struts.action.ActionForm;publicclassLoginFormextendsActionForm{privatestaticfinallongserialVersionUID=-7229704902759245328L;privateStringid;privateStringloginPwd;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetLoginPwd(){returnloginPwd;}publicvoidsetLoginPwd(StringloginPwd){this.loginPwd=loginPwd;}}LoginAction.javapackagecom.yourcompany.struts.action;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importcom.mysql.jdbc.Connection;importcom.mysql.jdbc.Statement;importcom.yourcompany.struts.form.*;publicclassLoginActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){LoginFormuserInfo=(LoginForm)form;Stringid=userInfo.getId();StringloginPwd=userInfo.getLoginPwd();Stringurl="jdbc:mysql://localhost/mydatabase";Connectioncon=null;ResultSetrs=null;Statementstmt;Stringsql="selectusernamesfromxufans";try{Class.forName("com.mysql.jdbc.Driver");con=(Connection)DriverManager.getConnection(url,"root","123");stmt=(Statement)con.createStatement();rs=stmt.executeQuery(sql);while(true){if(rs.next()){if(id.equals(rs.getString(1))){if(rs.getString(1).equals("123")){returnmapping.findForward("admin");}returnmapping.findForward("success");}}else{returnmapping.findForward("failure");}}}catch(SQLExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}returnnull;}}RegisterForm.javapackagecom.yourcompany.struts.form;importorg.apache.struts.action.ActionForm;publicclassRegisterFormextendsActionForm{privateStringid;privateStringloginPwd;privateStringtxtRPass;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetLoginPwd(){returnloginPwd;}publicvoidsetLoginPwd(StringloginPwd){this.loginPwd=loginPwd;}publicStringgetTxtRPass(){returntxtRPass;}publicvoidsetTxtRPass(StringtxtRPass){this.txtRPass=txtRPass;}}Registeraction.javapackagecom.yourcompany.struts.action;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importcom.mysql.jdbc.Connection;importcom.mysql.jdbc.Statement;importcom.yourcompany.struts.form.*;publicclassRegisterActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){RegisterFormuserInfo2=(RegisterForm)form;Stringid2=userInfo2.getId();StringloginPwd=userInfo2.getLoginPwd();Stringurl="jdbc:mysql://localhost/mydatabase";Connectioncon=null;ResultSetrs=null;Statementstmt;Stringsql="selectusernamesfromxufans";Stringsql1="insertintoxufansvalues('"+id2+"','"+loginPwd+"');";try{Class.forName("com.mysql.jdbc.Driver");con=(Connection)DriverManager.getConnection(url,"root","123");stmt=(Statement)con.createStatement();rs=stmt.executeQuery(sql);while(true){if(rs.next()){if(id2.equals(rs.getString(1))){returnmapping.findForward("failure1");}}else{stmt.executeUpdate(sql1);returnmapping.findForward("success1");}}}catch(SQLExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}returnnull;}}strusts-config.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN""/dtds/struts-config_1_2.dtd"><struts-config><data-sources/><form-beans><form-beanname="loginForm"type="com.yourcompany.struts.form.LoginForm"/><form-beanname="registerForm"type="com.yourcompany.struts.form.RegisterForm"/></form-beans><global-exceptions/><global-forwards><forwardname="success"path="/success.jsp"/><forwardname="failure"path="/failure.jsp"/><forwardname="admin"path="/admin.jsp"/><forwardname="success1"path="/success1.jsp"/><forwardname="failure1"path="/failure1.jsp"/></global-forwards><action-mappings><actionpath="/login"type="com.yourcompany.struts.action.LoginAction"name="loginForm"scope="request"input="/login.jsp"><forwardname="success"path="/success.jsp"></forward><forwardname="failure"path="/failure.jsp"></forward><forwardname="admin"path="/admin.jsp"></forward></action><actionpath="/register"type="com.yourcompany.struts.action.RegisterAction"name="registerForm"scope="request"input="/register.jsp"><forwardname="success1"path="/success1.jsp"></forward><forwardname="failure1"path="/failure1.jsp"></forward></action></action-mappings><message-resourcesparameter="com.yourcompany.struts.ApplicationResources"/></struts-config>6三種技術(shù)的比較JSP(JavaServerPages是由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),是J2EE中一種技術(shù)標(biāo)準(zhǔn),功能同Asp.NET類似,主要用于同Asp.NET競(jìng)爭(zhēng),也是比較簡(jiǎn)單易學(xué)。EJB(EnterpriseJavaBeans),是J2EE中一種組件編程技術(shù),可以通過(guò)這種技術(shù)實(shí)現(xiàn)強(qiáng)大的服務(wù)功能,屬于J2EE高級(jí)編程范疇。Struts作為一個(gè)開(kāi)放原代碼的應(yīng)用框架,在最近幾年得到了飛速的發(fā)展,JSPWeb應(yīng)用開(kāi)發(fā)中應(yīng)用得非常廣泛,它已經(jīng)成為ISPWei應(yīng)用框架的標(biāo)準(zhǔn),好處就是,很好的實(shí)現(xiàn)了4VC設(shè)計(jì)模式,將模型、視圖、控制徹底分離,這樣軟件維護(hù)和可重用性就提高了。MVC(Model、View、Control)模式為大型程序的開(kāi)發(fā)及維護(hù)提供了巨大的便利是現(xiàn)在最好的設(shè)計(jì)模式之一。Structs是J2EE中非常有前途的編程技術(shù),它也屬于T2EE高級(jí)應(yīng)用范疇。盡管servlet是一種功能非常強(qiáng)大的web組件,但是它也具有非常大的局限性,就是java代碼和html語(yǔ)句混雜在一起,使得當(dāng)客戶端的顯示需要調(diào)整時(shí),必須修改源代碼,并且要重新寫譯servlet。由于servlet模糊了內(nèi)容的提供與內(nèi)容的表示的區(qū)別,在servlet類中出現(xiàn)大量的html文本使得servlet很難維護(hù)。Javaserverpage(java服務(wù)器頁(yè)面,JSP)很好的解決了這一問(wèn)題。Jsp頁(yè)面把顯示的靜態(tài)內(nèi)容(html文本)和動(dòng)態(tài)內(nèi)容很好的結(jié)合起來(lái)了,當(dāng)需要修改頁(yè)面的形式時(shí),我們只需要修改html文本部分就可以了,它把servlet很難解決的問(wèn)題(內(nèi)容的提供和內(nèi)容的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升醫(yī)療軟件產(chǎn)品的用戶體驗(yàn)與可用性
- 2025年關(guān)于法國(guó)葡萄酒業(yè)B公司特許合同樣本
- 商業(yè)領(lǐng)域中的數(shù)字孿生實(shí)踐案例分析
- 醫(yī)療健康產(chǎn)業(yè)的在線數(shù)字化營(yíng)銷探索
- 兒童樂(lè)園項(xiàng)目競(jìng)爭(zhēng)態(tài)勢(shì)分析與應(yīng)對(duì)策略
- 老舊小區(qū)改造項(xiàng)目風(fēng)險(xiǎn)評(píng)估與防控策略
- 基于數(shù)字教室技術(shù)的在線學(xué)習(xí)體驗(yàn)與優(yōu)化策略研究
- 2025年休閑農(nóng)業(yè)與鄉(xiāng)村旅游融合發(fā)展的鄉(xiāng)村旅游與創(chuàng)意農(nóng)業(yè)融合發(fā)展報(bào)告
- 2025年新能源汽車零部件再制造行業(yè)市場(chǎng)深度分析與趨勢(shì)洞察報(bào)告
- 2025年商業(yè)銀行金融科技人才金融科技人才培養(yǎng)與人才培養(yǎng)評(píng)價(jià)體系研究報(bào)告
- 單細(xì)胞測(cè)序:解鎖妊娠相關(guān)疾病細(xì)胞與分子特征的新鑰匙
- 物業(yè)車位收費(fèi)協(xié)議書
- 江蘇省海安中學(xué)、金陵中學(xué)、宿遷中學(xué)三校2024-2025學(xué)年高三年級(jí)下學(xué)期4月聯(lián)考測(cè)試 化學(xué)試卷(含答案)
- 離婚協(xié)議書正規(guī)打印電子版(2025年版)
- 2025年湖北省武漢市高考數(shù)學(xué)模擬試卷(附答案解析)
- 【MOOC】跨文化交際入門-華中師范大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年江西省高考生物試卷(真題+答案)
- CJT 526-2018 軟土固化劑 標(biāo)準(zhǔn)
- 品質(zhì)提升計(jì)劃改善報(bào)告課件
- 中考數(shù)學(xué)計(jì)算題練習(xí)100道(2024年中考真題)
- MOOC 光學(xué)發(fā)展與人類文明-華南師范大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論