jsp實現登入註冊(與資料庫對接)

NO IMAGE

最近做了一些影象處理的內容,閒暇時間搞了下jsp,終於把至少兩個月之前的程式碼的bug找出來了…

具體內容我在之前一篇博文有介紹,主要是增加了資料庫的部分。其實一樣處理,獲得輸入的使用者名稱,密碼,然後判斷是否需要在當前頁面用javascipt處理下(比如註冊肯定是需要的,起碼兩次密碼輸的要一樣),然後跳轉邏輯頁面,對接資料庫,進行增刪查改,最後跳轉相應的頁面.

有幾點需要注意:1,myeclipse的匯入jar的包與eclipse稍有不同.

                             2,javascript處理和跳轉邏輯頁面的處理的區別

之後有空再用javabean重寫一遍.

login.jsp

<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>
使用者登入
</title>
</head>
<body bgcolor="#e3e3e3">
<center>
<form action="check.jsp" method="post">
<table>
<caption>使用者登入</caption>
<tr><td>使用者名稱:</td><td><input type="text" name="username" size="20"/></td></tr>
<tr><td>密碼:</td><td><input type="text" name="pwd" size="20"/></td></tr>
<tr><td><input type="submit" value="登入"/><td><input type="reset" value="重置"/>
</table>
</form>
如果您還沒有註冊,請單擊<a href="register.jsp">這裡</a>註冊!
</body>
</center>
</html>

register.jsp

<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() "://" request.getServerName() ":" request.getServerPort() path "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>註冊頁面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script language="javascript">  
function isValid(form)  
{  
if (form.username.value=="")  
{  
alert("使用者名稱不能為空");  
return false;  
}  
if (form.pwd.value!=form.pwd2.value)  
{  
alert("兩次輸入的密碼不同!");  
return false;  
}  
else  if (form.pwd.value=="")  
{  
alert("使用者密碼不能為空!");  
return false;  
}  
else return true;  
}  
</script>  
</head>
<body>
<center>
<body bgcolor="#e3e3e3">
<h2>使用者註冊</h2>
<form action="check2.jsp" method="post" onSubmit="return isValid(this);">
<table>
<tr><td>使用者名稱:</td><td><input type="text" name="username" size="20"/></td></tr>
<tr><td>輸入密碼:</td><td><input type="text" name="pwd" size="20"/></td></tr>
<tr><td>再次確認密碼:</td><td><input type="text"name="pwd2" size="20"/></td><tr>
<tr><td><input type="submit" value="註冊"/><td><input type="reset" value="重置"/>
</table>
</form>
</center>
<br>
</body>
</html>

check.jsp(判斷使用者登入)

<%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() "://" request.getServerName() ":" request.getServerPort() path "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'check.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String users=request.getParameter("username");
String pass=request.getParameter("pwd");
boolean flag=false;
PreparedStatement sql=null;  
ResultSet rs=null;
Connection conn=null;
%>
<% 
String driver = "com.mysql.jdbc.Driver";  
String url = "jdbc:mysql://127.0.0.1:3307/login";  
String use = "root";   
String password = "960404";  
Class.forName(driver);  
conn= DriverManager.getConnection(url,use,password);  
sql =conn.prepareStatement("select * from student where username=? and password=?");
sql.setString(1,users);
sql.setString(2,pass);
rs=sql.executeQuery();
if (rs.next()) {  
flag=true;
}
rs.close();
sql.close();
conn.close();
%>
<!-- 判斷是否是正確的登入使用者 -->
<% if (flag==true){ %>
<jsp:forward page="show.jsp"/>
<%} 
else
if (flag==false){
%>
<jsp:forward page="login_fali.jsp"/>
<%} %>
</body>
</html>

check2.jsp(判斷使用者註冊)

<%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() "://" request.getServerName() ":" request.getServerPort() path "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>檢驗註冊頁面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<br>
<%
request.setCharacterEncoding("utf-8");
String users=request.getParameter("username");
String pass=request.getParameter("pwd");
%>
<% 
String driver = "com.mysql.jdbc.Driver";  
String url = "jdbc:mysql://127.0.0.1:3307/login";  
String use = "root";   
String password = "960404";  
Class.forName(driver);  
Connection conn= DriverManager.getConnection(url,use,password);  
PreparedStatement sql =conn.prepareStatement("insert into student(username,password)values(?,?)");
sql.setString(1,users);
sql.setString(2,pass); 
int rtn=sql.executeUpdate();
sql.close();
conn.close();
%>
</body>
</html>

show.jsp(登入成功)

<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() "://" request.getServerName() ":" request.getServerPort() path "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登入成功</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
登入成功. <br>
</body>
</html>


login_fail.jsp(注意還是要跳轉回原來的登入頁面的)

<%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() "://" request.getServerName() ":" request.getServerPort() path "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登入失敗</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<% out.println("登入失敗");%> 
<% response.setHeader("refresh","5;url=login.jsp");%>
</body>
</html>