使用JSP連線ORACLE資料庫做的一個簡單登入框架
這是常見的使用者登入方式!未採用MVC模式,只是為了實現功能!
通過連線資料庫,來獲得使用者名稱及密碼!
共三個頁面:login.jsp、loginconf.jsp、loginsucess.jsp
流程如下:
使用者首先開啟login.jsp輸入使用者名稱及密碼,此時login.jsp會將輸入的使用者名稱及密碼提交到loginconf.jsp
loginconf.jsp通過初始化連線資料庫,對使用者名稱及密碼進行判斷。如果正確則跳轉到loginsucess.jsp
否則回到login.jsp頁面並提示使用者,使用者名稱或者密碼錯誤!
如果使用者直接開啟。loginconf.jsp或者loginsucess.jsp則會通過判斷session來確定使用者是否登入成功了!
如果未登入則自動跳轉到登入介面!
login.jsp 程式碼如下:
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<center>
<titl><h1>JDBC+JSP 留言管理程式</h1></title>
<hr>
<br>
<form action="loginconf.jsp" method="post">
<table width="1">
<tr>
<td colspan="2">使用者登入</td>
</tr>
<tr>
<td >使用者名稱:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>密 碼:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="登入"></td>
<td><input type="reset" value="重置"></td>
</tr>
</table>
</form>
<%
// 判斷是否有錯誤資訊,如果有則列印
// 如果沒有此段程式碼,則顯示時會直接列印null
if(request.getAttribute("err")!=null)
{
%>
<h4><font color="red"><%=request.getAttribute("err")%></font></h4>
<%
}
%>
</center>
</head>
<body>
</body>
</html>
loginconf.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import = "java.sql.*"%>
<html>
<head>
<center>
<titl><h1>JDBC+JSP 留言管理程式</h1></title>
<hr>
<br>
</center>
</head>
<body>
<%--
使用JDBC連線ORACLE資料庫
--%>
<%!
String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
String DBURL = "jdbc:oracle:thin:@192.168.1.100:1521:YK";
String DBNAME = "scott";
String DBPASS = "tiger";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
%>
<%
boolean flag = false;
//接收引數
String name = request.getParameter("id");
String password = request.getParameter("password");
%>
<%
//連線資料庫
String sql = "SELECT name from login where name=? and password=?";
try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBNAME,DBPASS);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,name);
pstmt.setString(2,password);
rs = pstmt.executeQuery();
if(rs.next()) {
out.println(rs.getString("name"));
flag = true;
session.setAttribute("uname",rs.getString("name"));
} else {
request.setAttribute("err","使用者名稱或密碼錯誤!");
}
rs.close();
pstmt.close();
conn.close();
}catch (Exception e) {
out.println(e);
}
%>
<%
//跳轉
if(flag) {
//如果使用者登入成功,則跳轉到歡迎介面
//否則提示使用者登入失敗
%>
<jsp:forward page="loginsuccessf.jsp" />
<%
}
else {
%>
<jsp:forward page="login.jsp"/>
<%
}
%>
</body>
</html>
loginsucess.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<center>
<titl><h1>JDBC+JSP 留言管理程式</h1></title>
<hr>
<br>
</center>
</head>
<body>
<%
if(session.getAttribute("uname")!=null) {
//使用者已登入成功
%>
<center><h2>歡迎<font color="red" size=12><%=session.getAttribute("uname")%></font>進入留言管理系統
</h2></center>
<%
}
else {
//未登入,提示使用者登入
response.setHeader("refresh","2;URL=login.jsp");
%>
您還未登入,2秒將後自動跳轉到登入介面<br>
如果沒有自動跳轉,請<a href="login.jsp"><font color="greed">點選</font></a>這裡登入!<br>
<%
}
%>
</body>
</html>