為了練手,我就自己試著做了一個(gè)網(wǎng)站的登錄與注冊(cè)的小案例。由于沒(méi)有做美化處理,所以界面并不是很好看。
網(wǎng)站實(shí)現(xiàn)的功能如下:
•用戶(hù)首次注冊(cè)功能
•用戶(hù)登錄功能
下面我將會(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">nbsp;nbsp;nbsp;nbsp;input type="reset">br>
/body>
/html>
然后就是action對(duì)應(yīng)的注冊(cè)處理頁(yè),如下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ù)庫(kù)的操作做得不夠好,沒(méi)有及時(shí)的將不用的資源關(guān)閉,應(yīng)該及時(shí)的對(duì)那些不用的打開(kāi)的資源進(jìn)行關(guān)閉操作,釋放資源。
•界面效果做的不夠好,response輸出是先于out的輸出的。
•數(shù)據(jù)庫(kù)操作顯得過(guò)于繁瑣,應(yīng)該集成一下,做一個(gè)專(zhuān)門(mén)處理數(shù)據(jù)庫(kù)操作的工具包,以實(shí)現(xiàn)代碼的良好的復(fù)用性!
登錄模塊
首先是登錄界面,login.jsp,鄙人加進(jìn)去一個(gè)超鏈接(用意是讓login.jsp作為門(mén)戶(hù)頁(yè)面,實(shí)現(xiàn)登錄注冊(cè)合二為一的效果,雖然二者并沒(méi)有合二為一,而且注冊(cè)界面過(guò)于簡(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">nbsp;nbsp;nbsp;nbsp;input type="reset">br>
Click me to font color="green">a href="register.jsp">Register/a>!/font>br>
/form>
/body>
/html>
然后是對(duì)登錄信息的處理頁(yè),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ì)于登陸成功的用戶(hù),跳轉(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ì)于登錄失敗的用戶(hù),進(jìn)行溫馨的頁(yè)面提示,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ì)象來(lái)存儲(chǔ)用戶(hù)登錄的姓名信息,實(shí)現(xiàn)了頁(yè)面間的信息的交互
•配合了MySQL,在一定程度上體驗(yàn)了JEE的模式
不足之處:
•代碼過(guò)于繁冗,復(fù)用性不好
•資源利用率不高,使用過(guò)的不再使用的資源要及時(shí)的進(jìn)行關(guān)閉。雖然java虛擬機(jī)有自動(dòng)的垃圾回收機(jī)制,但最好還是養(yǎng)成好的習(xí)慣!
•界面控制做的不夠好,體驗(yàn)性差,欠缺思考
待改進(jìn)之處:
•加上復(fù)雜一點(diǎn)的用戶(hù)注冊(cè),使用bean的方式做處理比較好
•模塊化,使用MVC的概念
•改善界面的權(quán)限,防止盜鏈
•加上其他的諸如上傳文件,下載文件功能,豐富網(wǎng)站的功能。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- JavaWeb實(shí)現(xiàn)用戶(hù)登錄注冊(cè)功能實(shí)例代碼(基于Servlet+JSP+JavaBean模式)
- Servlet+JavaBean+JSP打造Java Web注冊(cè)與登錄功能
- JSP實(shí)現(xiàn)用戶(hù)登錄、注冊(cè)和退出功能
- jsp基于XML實(shí)現(xiàn)用戶(hù)登錄與注冊(cè)的實(shí)例解析(附源碼)
- 在jsp中用bean和servlet聯(lián)合實(shí)現(xiàn)用戶(hù)注冊(cè)、登錄
- 使用JSP實(shí)現(xiàn)簡(jiǎn)單的用戶(hù)登錄注冊(cè)頁(yè)面示例代碼解析