JSP

jsp login verification demonstration servlet login success


Login verification of jsp Demo

part_1: login. jsp: Login page:

<%@ 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) {
 // If you have logged in during this session, redirect directly to 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">
  Please log in :
 <br>
 <form action="/ServletDemoProject/servlet/LoginVerificationServlet"
 method="post">
  User name:
 <input type="text" name="username" value="<%=username%>" />
 <br>
  Dense   Code:
 <input type="password" name="password" value="" />
 <br>
 <font color='red'><%=fdbkMsg%></font>
 <br>
 <input type="submit" value=" Submit " />
 <br>
 </form>
 </div>
 </body>
</html>

part_2: LoginVerificationServlet. java: Verify the login information. There is no connection to the database here. By default, only username: admin and password: 888888 are considered as successful login; When login fails: reforward to Login. jsp and prompt the user to log in failed and log in again;

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))) {//  Login Successful
 //  Save cookie To the client
 Cookie userCookie = new Cookie("username", username);
 userCookie.setMaxAge(60 * 2);// expiry : 2 minutes
 response.addCookie(userCookie);
 //  Redirect to 1 A new page and prompt XXX The user logs in successfully using the session Access User Name) ;
 request.getSession().setAttribute("username", username);
 request.getSession().setAttribute("logedIn", true);
 response
  .sendRedirect("/ServletDemoProject/LOGIN-DEMO/success-page-1.jsp");
 } else {//  Log in failed
 //  Forward to the login interface and prompt with an error message:
 request.setAttribute("fdbkMsg", " Wrong username or password! ");
 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: Redirect to this page after verifying successful login, prompting the user that he has successfully logged in; If the user tries to use improper channels, e. g: accessing from the address bar will be forwarded to the login interface and prompted;

<%@ 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) {
 // If username Is null, indicating that it is not from the normal channel and forwarded to Login Page;
 request.setAttribute("fdbkMsg", " Don't try to come in through the back door, log in quickly! ");
 request.getRequestDispatcher("/LOGIN-DEMO/Login.jsp").forward(
  request, response);
 }
 %>

 <body>
 <br>
 <%=username%> Has successfully landed.
 <br>
 <font> You can choose to browse: </font>
 <br>
 <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp"> Click here to have wonderful things .</a>
 <br>
 <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp"> It's more exciting to click here .</a>
 <br />
 <a href="/ServletDemoProject/LOGIN-DEMO/success-page-2.jsp"> Do you dare to light here .</a>
 <br />
 </body>
</html>

part_4: success-page-2. jsp: Successful login page 2. If you have successfully logged in and saved your user name to session, you will check 1 when visiting this page to prevent violent access from the address bar;

<%@ 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", " Heheda, is this where you come from? Log in! ");
 // Forward to login interface :
 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 = " Morning ";
 } else
 am_pm_str_in_chinese = " Afternoon ";

 // set null;
 sDateFormat = null;
 today = null;
 am_pm_str = null;
 %>

 <body>
 <br />
 <font><b><%=username%><%=am_pm_str_in_chinese%> OK, you can come to the page 2 It's not easy .</b>
 </font>
 </body>
</html>