jsp登陸校驗(yàn)演示 servlet、login、success
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)登錄信息,此處沒(méi)有連接數(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", "別想走后門(mén)進(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)
相關(guān)文章
Hibernate 修改數(shù)據(jù)的實(shí)例詳解
這篇文章主要介紹了Hibernate 修改數(shù)據(jù)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解這部分內(nèi)容,需要的朋友可以參考下2017-10-10使用JSP + JAVABEAN + XML 開(kāi)發(fā)的一個(gè)例子
使用JSP + JAVABEAN + XML 開(kāi)發(fā)的一個(gè)例子...2006-10-10JSP實(shí)用教程之簡(jiǎn)易圖片驗(yàn)證碼的實(shí)現(xiàn)方法(附源碼)
圖片驗(yàn)證碼對(duì)大家來(lái)說(shuō)應(yīng)該再熟悉不過(guò)了,而圖片驗(yàn)證碼的實(shí)現(xiàn)主要的技術(shù)點(diǎn)是如何生成一個(gè)圖片,下面這篇文章主要跟大家介紹了關(guān)于JSP實(shí)用教程之實(shí)現(xiàn)簡(jiǎn)易圖片驗(yàn)證碼的方法,文中介紹的非常詳細(xì),需要的朋友們下面來(lái)一起看看吧。2017-07-07ajax+jsp草稿自動(dòng)保存的實(shí)現(xiàn)代碼
ajax+jsp草稿自動(dòng)保存的實(shí)現(xiàn)代碼...2007-05-05