JSP+MySQL實(shí)現(xiàn)網(wǎng)站的登錄與注冊(cè)小案例
為了練手,我就自己試著做了一個(gè)網(wǎng)站的登錄與注冊(cè)的小案例。由于沒有做美化處理,所以界面并不是很好看。
網(wǎng)站實(shí)現(xiàn)的功能如下:
•用戶首次注冊(cè)功能
•用戶登錄功能
下面我將會(huì)分模塊展示
注冊(cè)模塊
首先需要一個(gè)注冊(cè)界面,如下register.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>User to Register Page!</title> </head> <body> <hr><br>Welcome to this <font color="green">Enroll(Register) Page</font>!<br> <form action="do_register.jsp" method="get"> <br> <h1>Please input your message:</h1><br> Name:<input type="text" name="register_name"><br> Pswd:<input type="password" name="register_password"><br> <br><br><br> <input type="submit"> <input type="reset"><br> </body> </html>
然后就是action對(duì)應(yīng)的注冊(cè)處理頁,如下do_register.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.sql.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Server to do the register page!</title> </head> <body> <% String Register_name=request.getParameter("register_name"); String Register_password=request.getParameter("register_password"); %> <% try{ Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/summer", "root", "mysql"); Statement stmt=conn.createStatement(); //desogn the sql statement String InsertSQL="INSERT INTO User(Name,Password) values('"+Register_name+"','"+Register_password+"')"; System.out.println(Register_name+"\t"+Register_password); //do the query operation,and here is the most important sql statement. int FLAG=stmt.executeUpdate(InsertSQL); if(FLAG>0){ response.getWriter().write("Congratulation! REgister Success!"); }else{ response.getWriter().write("Sorry!Register Failed!\nPlease Retry it!"); } }catch(SQLException e){ } %> </body> </html>
小總結(jié):
不足之處:
•對(duì)于數(shù)據(jù)庫的操作做得不夠好,沒有及時(shí)的將不用的資源關(guān)閉,應(yīng)該及時(shí)的對(duì)那些不用的打開的資源進(jìn)行關(guān)閉操作,釋放資源。
•界面效果做的不夠好,response輸出是先于out的輸出的。
•數(shù)據(jù)庫操作顯得過于繁瑣,應(yīng)該集成一下,做一個(gè)專門處理數(shù)據(jù)庫操作的工具包,以實(shí)現(xiàn)代碼的良好的復(fù)用性!
登錄模塊
首先是登錄界面,login.jsp,鄙人加進(jìn)去一個(gè)超鏈接(用意是讓login.jsp作為門戶頁面,實(shí)現(xiàn)登錄注冊(cè)合二為一的效果,雖然二者并沒有合二為一,而且注冊(cè)界面過于簡(jiǎn)單了),大家就先湊活看吧。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>User Login Page</title> </head> <body> <hr><br>Welcome to this <font color="green">Login Page</font>!<br> <form action="do_login.jsp" method="get"> <br> <h1>Please input your message:</h1><br> Name:<input type="text" name="name"><br> Pswd:<input type="password" name="password"><br> <br><br><br> <input type="submit"> <input type="reset"><br> Click me to <font color="green"><a href="register.jsp">Register</a>!</font><br> </form> </body> </html>
然后是對(duì)登錄信息的處理頁,do_login.jsp:
<%@page import="java.sql.DriverManager"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.sql.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Server Page Depend !</title> </head> <body> <h3>Which Pae will be depend by the user's message!</h3> <% String name=request.getParameter("name"); String password=request.getParameter("password"); %> <% Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/summer", "root", "mysql"); Statement stmt=conn.createStatement(); //desogn the sql statement String queryNumberSQL="SELECT Name from User where Name='"+name+"' and Password='"+password+"'"; //do the query operation ResultSet rs=stmt.executeQuery(queryNumberSQL); boolean flag=false; if(rs.next()){ flag=true; session.setAttribute("UserName", name); }else{ flag=false; } %> <% if(flag){ %> <jsp:forward page="login_success.jsp"></jsp:forward> <% }else{ %> <jsp:forward page="login_failed.jsp"></jsp:forward> <% } %> </body> </html>
對(duì)于登陸成功的用戶,跳轉(zhuǎn)到登陸成功界面login_success.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>User Login Success Page!</title> </head> <body> <hr><br> <h1>Login Success!</h1><br> <font color="green">Welcome <%=session.getAttribute("UserName") %>!</font> <h3 align="center">your persional Message is:</h3> <% out.println("Name:"+session.getAttribute("UserName")); %> <font color="red"><a href="login.jsp">Click me</a> to log out!</font> </body> </html>
對(duì)于登錄失敗的用戶,進(jìn)行溫馨的頁面提示,login.failed.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Login Failed Page!</title> </head> <body> <hr> <br> <h1><font color="red">Sorry,Login Failed</font></h1><br> <font color="red"><a href="login.jsp">Click me</a> to login!</font> </body> </html>
大總結(jié):
進(jìn)步之處:
•使用到了session對(duì)象來存儲(chǔ)用戶登錄的姓名信息,實(shí)現(xiàn)了頁面間的信息的交互
•配合了MySQL,在一定程度上體驗(yàn)了JEE的模式
不足之處:
•代碼過于繁冗,復(fù)用性不好
•資源利用率不高,使用過的不再使用的資源要及時(shí)的進(jìn)行關(guān)閉。雖然java虛擬機(jī)有自動(dòng)的垃圾回收機(jī)制,但最好還是養(yǎng)成好的習(xí)慣!
•界面控制做的不夠好,體驗(yàn)性差,欠缺思考
待改進(jìn)之處:
•加上復(fù)雜一點(diǎn)的用戶注冊(cè),使用bean的方式做處理比較好
•模塊化,使用MVC的概念
•改善界面的權(quán)限,防止盜鏈
•加上其他的諸如上傳文件,下載文件功能,豐富網(wǎng)站的功能。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JBuilderX+SQL Server開發(fā)hibernate
JBuilderX+SQL Server開發(fā)hibernate...2006-10-10詳解Spring data 定義默認(rèn)時(shí)間與日期的實(shí)例
這篇文章主要介紹了詳解Spring data 定義默認(rèn)時(shí)間與日期的實(shí)例的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08JSP中內(nèi)建exception對(duì)象時(shí)出現(xiàn)500錯(cuò)誤的解決方法
這篇文章主要介紹了JSP中內(nèi)建exception對(duì)象時(shí)出現(xiàn)500錯(cuò)誤的解決方法,以一個(gè)簡(jiǎn)單實(shí)例形式分析了exception對(duì)象出現(xiàn)500錯(cuò)誤的解決方法,涉及瀏覽器及error文件的設(shè)置技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11jsp 從web.xml讀取連接數(shù)據(jù)庫的參數(shù)
web.xml讀取連接數(shù)據(jù)庫的參數(shù),實(shí)現(xiàn)代碼。2009-05-05JSP 點(diǎn)擊鏈接后下載文件(相當(dāng)于右鍵另存)功能
JSP 點(diǎn)擊鏈接后下載文件(相當(dāng)于右鍵另存)功能實(shí)現(xiàn)代碼。2009-07-07jsp簡(jiǎn)單自定義標(biāo)簽的forEach遍歷及轉(zhuǎn)義字符示例
這篇文章主要介紹了jsp簡(jiǎn)單自定義標(biāo)簽的forEach遍歷及轉(zhuǎn)義字符,需要的朋友可以參考下2014-03-03ssh生成隨機(jī)數(shù)字驗(yàn)證碼操作步驟
隨機(jī)數(shù)字驗(yàn)證碼生成方法很多,接下來將介紹下jsp中時(shí)如何實(shí)現(xiàn)的,感興趣的朋友可以參考下,希望本文對(duì)你有所幫助2013-02-02