版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
設(shè)計(jì)內(nèi)容與要求問題描述(1)給系統(tǒng)用戶分成兩種角色:注冊(cè)用戶和管理員。能根據(jù)角色的不同來顯示或隱藏管理功能的鏈接,即權(quán)限不同,可使用系統(tǒng)的功能也不同。(2)實(shí)現(xiàn)用戶注冊(cè)和登錄功能。(3)能從用戶登陸界面獲取用戶名和密碼。(4)能連接MySQL數(shù)據(jù)庫來查詢驗(yàn)證用戶名和密碼的有效性。運(yùn)行環(huán)境要求正確安裝、配置和運(yùn)行Tomcat服務(wù)器。正確安裝、配置和運(yùn)行SQLServer服務(wù)器。正確安裝、配置struts和SQLServer的JDBC驅(qū)動(dòng)程序。技術(shù)要求要求分別使用三種不同的方式來實(shí)現(xiàn)。Servlet和html頁面結(jié)合的技術(shù)。JSP技術(shù)和Java輔助類結(jié)合。struts應(yīng)用程序框架。利用面向?qū)ο蟮姆椒?、編程思想來完成系統(tǒng)的設(shè)計(jì);在設(shè)計(jì)的過程中,建立清晰的類層次;在系統(tǒng)設(shè)計(jì)中要分析和定義各個(gè)類,每個(gè)類中要有各自的屬性和方法;要求理解MVC設(shè)計(jì)模式和運(yùn)用struts框架來實(shí)現(xiàn)系統(tǒng)功能的模塊化設(shè)計(jì)。(1) 用戶注冊(cè):搜集用戶個(gè)人信息,確定唯一的用戶標(biāo)識(shí),并把信息寫入數(shù)據(jù)庫中。用戶將看到一個(gè)注冊(cè)屏幕,包含3個(gè)字段:用戶名,密碼和密碼確認(rèn)。成功的注冊(cè)要求兩次密碼相符。如果注冊(cè)成功,控制將轉(zhuǎn)向一個(gè)頁面,顯示注冊(cè)成功。如果兩次輸入密碼不同,控制流將轉(zhuǎn)向一個(gè)顯示失敗的頁面。(2) 用戶登錄:根據(jù)用戶輸入的標(biāo)識(shí),訪問數(shù)據(jù)庫,判斷用戶是否為注冊(cè)用戶;如果是則顯示登錄成功頁面,該頁面包含有用戶名的歡迎信息;否則提示用戶輸入錯(cuò)誤,重新輸入或注冊(cè)為新用戶。要求頁面有合適的表單,對(duì)用戶輸入有客戶端的數(shù)據(jù)驗(yàn)證。比如用戶名不能為空。設(shè)計(jì)說明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),用可以通過注冊(cè)界面注冊(cè)用戶名和密碼,并同時(shí)完成身份信息的錄入然后可以實(shí)現(xiàn)用戶登錄。同時(shí)另一角色管理員也可實(shí)現(xiàn)相應(yīng)的登錄操作,通過連接mysql數(shù)據(jù)庫來查詢驗(yàn)證用戶名和密碼的有效性。根據(jù)驗(yàn)證結(jié)果轉(zhuǎn)向不同的頁面進(jìn)行處理,并給出相應(yīng)提示。2.3功能模塊設(shè)計(jì)根據(jù)功能分析,網(wǎng)絡(luò)購物系統(tǒng)用戶登陸管理可以分為三個(gè)模塊,每一個(gè)模塊相應(yīng)的實(shí)現(xiàn)了具體的功能。Servlet和html頁面結(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ù)庫的代碼,并連接到數(shù)據(jù)庫,并顯示歡迎的界面regist.java處理用戶注冊(cè)信息,含有連接數(shù)據(jù)庫的代碼,并連接到數(shù)據(jù)庫,并顯示歡迎的界面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>無標(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ù)用來驗(yàn)證用戶名密碼都不能為空。registers.jsp是用戶注冊(cè)界面,functioncheck()函數(shù)來驗(yàn)證2次密碼輸入是否一致。checklogin.jsp用戶登錄處理界面,連接數(shù)據(jù)庫,以及顯示登錄成功的信息。checkregister.jsp用戶注冊(cè)登錄成功界面,連接數(shù)據(jù)庫,和顯示注冊(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()來驗(yàn)證用戶名密碼不能為空。Register.jsp是用戶注冊(cè)界面,checkPass()函數(shù)來驗(yàn)證2次密碼的輸入是否一致。普通用戶登陸和注冊(cè)成功界面success.jsp,success1.jsp普通用戶登陸和注冊(cè)失敗界面failure.jsp,failure1.jsp管理員登陸成功界面admin.jspStruts的配置文件:struts—config.xmlAction包里的2個(gè)java類:LoginAction.java:用來處理用戶的登錄動(dòng)作,含有連接數(shù)據(jù)庫的代碼,mappingfindforward(),用來跳轉(zhuǎn)到相應(yīng)的成功或失敗的頁面。RegisterAction.java:用來處理用戶的注冊(cè)操作,含有連接數(shù)據(jù)庫的代碼,mappingfindforward(),用來跳轉(zhuǎn)到相應(yīng)的成功或失敗的頁面。Form包里的2個(gè)java類:LoginForm.java:它實(shí)際是一個(gè)java類,用來捕獲登錄用戶通過請(qǐng)求傳送到web應(yīng)用的請(qǐng)求參數(shù)。RegisterForm.java:它實(shí)際是一個(gè)java類,用來捕獲注冊(cè)用戶通過請(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)頁技術(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ù),可以通過這種技術(shù)實(shí)現(xiàn)強(qiáng)大的服務(wù)功能,屬于J2EE高級(jí)編程范疇。Struts作為一個(gè)開放原代碼的應(yīng)用框架,在最近幾年得到了飛速的發(fā)展,JSPWeb應(yīng)用開發(fā)中應(yīng)用得非常廣泛,它已經(jīng)成為ISPWei應(yīng)用框架的標(biāo)準(zhǔn),好處就是,很好的實(shí)現(xiàn)了4VC設(shè)計(jì)模式,將模型、視圖、控制徹底分離,這樣軟件維護(hù)和可重用性就提高了。MVC(Model、View、Control)模式為大型程序的開發(fā)及維護(hù)提供了巨大的便利是現(xiàn)在最好的設(shè)計(jì)模式之一。Structs是J2EE中非常有前途的編程技術(shù),它也屬于T2EE高級(jí)應(yīng)用范疇。盡管servlet是一種功能非常強(qiáng)大的web組件,但是它也具有非常大的局限性,就是java代碼和html語句混雜在一起,使得當(dāng)客戶端的顯示需要調(diào)整時(shí),必須修改源代碼,并且要重新寫譯servlet。由于servlet模糊了內(nèi)容的提供與內(nèi)容的表示的區(qū)別,在servlet類中出現(xiàn)大量的html文本使得servlet很難維護(hù)。Javaserverpage(java服務(wù)器頁面,JSP)很好的解決了這一問題。Jsp頁面把顯示的靜態(tài)內(nèi)容(html文本)和動(dòng)態(tài)內(nèi)容很好的結(jié)合起來了,當(dāng)需要修改頁面的形式時(shí),我們只需要修改html文本部分就可以了,它把servlet很難解決的問題(內(nèi)容的提供和內(nèi)容的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《電氣控制原理圖》課件
- DB32T-建筑工程BIM規(guī)劃報(bào)建數(shù)據(jù)規(guī)范編制說明
- 給予是快樂的課件公開課專用
- 《口腔潔治課件》課件
- 基因工程的基本操作程序課件
- 《TA溝通分析課程》課件
- 《伊犁河大橋》課件
- 生活處處有哲學(xué)課件
- 單位管理制度展示匯編【員工管理篇】
- 中國(guó)武都頭風(fēng)痛丸項(xiàng)目投資可行性研究報(bào)告
- 廣西玉林市(2024年-2025年小學(xué)六年級(jí)語文)統(tǒng)編版質(zhì)量測(cè)試(上學(xué)期)試卷及答案
- 《外盤期貨常識(shí)》課件
- 【MOOC】土力學(xué)-西安交通大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 醫(yī)院醫(yī)保科工作總結(jié)
- 2024-2025學(xué)年譯林版八年級(jí)英語上學(xué)期重點(diǎn)詞匯短語句子歸納【考點(diǎn)清單】
- 廣東省六校聯(lián)考2024-2025學(xué)年高二上學(xué)期12月月考英語試題
- 養(yǎng)老護(hù)理員技能培訓(xùn)的標(biāo)準(zhǔn)化實(shí)施方案
- 2024年企業(yè)采購部年終總結(jié)及今后計(jì)劃(3篇)
- 物業(yè)客服個(gè)人述職報(bào)告范例
- 數(shù)據(jù)崗位招聘筆試題與參考答案2024年
- 2024屆高考英語詞匯3500左右
評(píng)論
0/150
提交評(píng)論