使用 jsp 來建立登入的網頁,並做簡單的驗證。
login/index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor='skyblue'>
<a href='../index.html'> 回上一頁 </a><hr>
登入
<form name='f1' method='post' action='check.jsp'>
帳號: <input type='text' name='act'> </br>
密碼: <input type='password' name='pwd'> </br></br>
<input type='reset' value='全部清空'>
<input type='submit' value='確認送出'> <br>
</form>
</body>
</html>
login/check.jsp
<%
String act = request.getParameter("act");
String pwd = request.getParameter("pwd");
if ( act.equalsIgnoreCase("test") && pwd.equals("1234"))
{
response.sendRedirect("wellcome.html");
}else{
response.sendRedirect("error.html");
}
%>
2.登出
利用session來控制登出登入
a.登入畫面
b.按確認送出後,會傳資料到check.jsp來驗證帳號密碼。
c.確認帳密正確後,會導到 wellcome.jsp。可按超連結登出或按鈕登出回到登入畫面。
wellcome.jsp
<%
if (session.getAttribute("uid") == null){
response.sendRedirect("error.html");
}
%>
//先印出帳號,然後加上字串" 你好!歡迎光臨"
<%= session.getAttribute("uid")%> 你好!歡迎光臨</br></br>
<a href='./logout.jsp'>登出</a><br>
<form name='logout' method='post' action='logout.jsp'>
<input type='submit' value='登出'>
</form>
d.若輸入錯誤會導到 error.html。按重新輸入會在回到登入畫面。
error.html
帳號或密碼錯誤
<a href='index.html'>重新輸入</a>
3.用檔案的方式來驗證帳號密碼
a.先建立一個包含帳號密碼的 txt 檔案,帳密用逗號分隔,一個帳密一行。
b.先讀到檔案後,列印在螢幕上做測試
check.jsp 測試版
//這裡必須先匯入 java.io.*
<%@ page contentType="text/html; charset=UTF-8" import="java.io.*" %>
<%
String act = request.getParameter("act");
String pwd = request.getParameter("pwd");
//檔案必須為絕對路徑,否則讀不到。必須在\後面再加一個\,因為\在 Java是跳脫字元。
File f = new File(
"C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\webapps\\jamespcschool\\login_session_io\\employee.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
//這裡先讀一行,因為第一航有時會被windows加入3個字元造成亂碼。所以可以利用第一 行來當註解,這裡先讀掉第一行,後面才開始進入迴圈。
String s = br.readLine();
String[] input = null;
boolean isFound=false;
while ( (s=br.readLine()) != null){
//下面一行是作為測試是否可以讀到檔案然後顯示在楊牧上。
out.print(s + "<br>");
}
測試結果
c.加入迴圈及判斷式來驗證號密碼
check.jsp 完整版
<%@ page contentType="text/html; charset=UTF-8" import="java.io.*" %>
<%@ page contentType="text/html; charset=UTF-8" import="java.io.*" %>
<%
String act = request.getParameter("act");
String pwd = request.getParameter("pwd");
File f = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\webapps\\jamespcschool\\login_session_io\\employee.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = br.readLine();
String[] input = null;
boolean isFound=false;
while ( (s=br.readLine()) != null){
// out.print(s + "<br>"); //上面作測試的 mark掉
//這裡是用將逗號作為分隔點,然後將帳號及密碼分別放入陣列 input[0] & input[1]。
input =s.split(",");
// out.print(input[0] + "_" +input[1]);
if ( act.equalsIgnoreCase(input[0]) && pwd.equals(input[1]))
{
session.setAttribute("uid",act);
//用布林值來控制下面的 if 是要進入 wellcome 還是 error。
isFound = true;
}//if
}//while
//
這裡的 if (isFound) 就是 if ( isFound = true )。因為 if ( ) 裡面的條件是要成立,就是 true的意思。
if (isFound){
response.sendRedirect("wellcome.jsp");
}else{
response.sendRedirect("error.html");
}//if
%>
No comments:
Post a Comment