jsp的登錄校驗(yàn)Demo
part_1:login.jsp:登錄頁(yè)面:
%@ page language="java" import="java.util.*" pageEncoding="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 'Login.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>
%
String fdbkMsg = (String) request.getAttribute("fdbkMsg");
if (null == fdbkMsg) {
fdbkMsg = "";
}
%>
%
Boolean logedIn = (Boolean) session.getAttribute("logedIn");
if (null == logedIn) {
logedIn = false;
} else if (logedIn) {
//如果在本次會(huì)話已經(jīng)登陸,直接重定向到success-page-1
response
.sendRedirect("/ServletDemoProject/LOGIN-DEMO/success-page-1.jsp");
}
%>
%
String username = "";
Cookie[] cookies = request.getCookies();
if ((null != cookies) (cookies.length > 0)) {
for (Cookie c : cookies) {
if ("admin".equals(c.getValue())) {
username = "admin";
break;
}
}
}//end if-condition
%>
body>
br>
div align="center">
請(qǐng)登錄:
br>
form action="/ServletDemoProject/servlet/LoginVerificationServlet"
method="post">
用戶名:
input type="text" name="username" value="%=username%>" />
br>
密 碼:
input type="password" name="password" value="" />
br>
font color='red'>%=fdbkMsg%>/font>
br>
input type="submit" value="提交" />
br>
/form>
/div>
/body>
/html>
part_2:LoginVerificationServlet.java:校驗(yàn)登錄信息,此處沒有連接數(shù)據(jù)庫(kù),默認(rèn)只有username:admin,password:888888才算登錄成功;登陸失敗時(shí):重新轉(zhuǎn)發(fā)到Login.jsp并提示用戶登陸失敗,重新登陸;
package cn.mike.servlet.test_1209_Login;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginVerificationServlet extends HttpServlet {
private static final long serialVersionUID = -6886327892796230543L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if (("admin".equals(username)) ("888888".equals(password))) {// 登錄成功
// 保存cookie到客戶端
Cookie userCookie = new Cookie("username", username);
userCookie.setMaxAge(60 * 2);// expiry : 2 minutes
response.addCookie(userCookie);
// 重定向到一個(gè)新的頁(yè)面,并提示XXX用戶登錄成功(使用session存取用戶名);
request.getSession().setAttribute("username", username);
request.getSession().setAttribute("logedIn", true);
response
.sendRedirect("/ServletDemoProject/LOGIN-DEMO/success-page-1.jsp");
} else {// 登陸失敗
// 轉(zhuǎn)發(fā)到登錄界面,并提示錯(cuò)誤信息:
request.setAttribute("fdbkMsg", "用戶名或密碼錯(cuò)誤!");
request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(
request, response);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// do same as GET-method :
doGet(request, response);
}
}
part_3:success-page-1.jsp:校驗(yàn)登錄成功后重定向到該頁(yè)面,提示用戶已經(jīng)成功登陸;如果用戶試圖通過(guò)不正當(dāng)途徑,e.g:從地址欄訪問(wèn),將會(huì)轉(zhuǎn)發(fā)到登錄界面,并作提示;
%@ page language="java" import="java.util.*" pageEncoding="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 'success-page-1.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>
%
String username = (String) session.getAttribute("username");
if (null == username) {
//如果username為空值,說(shuō)明不是通過(guò)正常渠道來(lái)的,轉(zhuǎn)發(fā)到Login頁(yè)面;
request.setAttribute("fdbkMsg", "別想走后門進(jìn)來(lái),趕緊登錄!");
request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(
request, response);
}
%>
body>
br>
%=username%>已經(jīng)成功登陸。
br>
font>您可以選擇瀏覽:/font>
br>
a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">點(diǎn)這兒有精彩./a>
br>
a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">點(diǎn)這兒更精彩./a>
br />
a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp">你敢點(diǎn)這兒?jiǎn)?/a>
br />
/body>
/html>
part_4:success-page-2.jsp:登陸成功頁(yè)面2,如果已經(jīng)登陸成功將用戶名保存到session,在訪問(wèn)該頁(yè)面時(shí)將會(huì)校驗(yàn)一下,防止從地址欄暴力訪問(wèn);
%@ page language="java" import="java.util.Date" pageEncoding="UTF-8"%>
%@ page language="java" import="java.text.SimpleDateFormat"%>
%
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 'success-page-2.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>
%
String username = (String) session.getAttribute("username");
if (null == username) {
request.setAttribute("fdbkMsg", "呵呵嗒,這里是你來(lái)的地方嗎?快登陸!");
//轉(zhuǎn)發(fā)到登錄界面:
request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(
request, response);
}
SimpleDateFormat sDateFormat = new SimpleDateFormat("a");
Date today = new Date();
String am_pm_str = sDateFormat.format(today);
String am_pm_str_in_chinese = "";
if ("am".equalsIgnoreCase(am_pm_str)) {
am_pm_str_in_chinese = "上午";
} else
am_pm_str_in_chinese = "下午";
// set null;
sDateFormat = null;
today = null;
am_pm_str = null;
%>
body>
br />
font>b>%=username%>%=am_pm_str_in_chinese%>好,能來(lái)到頁(yè)面2真不簡(jiǎn)單./b>
/font>
/body>
/html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- js實(shí)現(xiàn)登錄注冊(cè)框手機(jī)號(hào)和驗(yàn)證碼校驗(yàn)(前端部分)
- JavaScript 完成注冊(cè)頁(yè)面表單校驗(yàn)的實(shí)例
- JavaScript注冊(cè)時(shí)密碼強(qiáng)度校驗(yàn)代碼
- js簡(jiǎn)單實(shí)現(xiàn)用戶注冊(cè)信息的校驗(yàn)代碼
- JS校驗(yàn)與最終登陸界面功能完整示例
- 詳解AngularJs HTTP響應(yīng)攔截器實(shí)現(xiàn)登陸、權(quán)限校驗(yàn)
- Angular.js與node.js項(xiàng)目里用cookie校驗(yàn)賬戶登錄詳解
- 攔截JSP頁(yè)面,校驗(yàn)是否已登錄詳解及實(shí)現(xiàn)代碼
- ASP.NET MVC結(jié)合JavaScript登錄、校驗(yàn)和加密
- javascript使用正則表達(dá)式實(shí)現(xiàn)注冊(cè)登入校驗(yàn)