文件目錄
1.登錄頁面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>登錄頁面</title> </head> <body> <% //讀取用戶名為uname的cookie值,如果為空,就顯示“”, //不為空,就顯示cookie值 Cookie[] cookies=request.getCookies(); //遍歷cookie值,獲取cookie名為uname的cookie String uname=""; if(cookies != null){ for(Cookie c:cookies){ if("uname".equals(c.getName())){ uname=c.getValue(); } } } %> <%--本頁面提供登錄表單,還要顯示錯誤信息 --%> <% String message=""; String msg=(String)request.getAttribute("msg"); if(msg != null){ message=msg; } %> <font color="red" > <b> <%=message %> </b> </font> <h1>登錄頁面</h1> <form action="/SessionDemo/LoginServlet" method="post"> <!-- 把cookie中的值放到文本框中--> 用戶名:<input type="text" name="username" value=<%=uname %>/><br> 密 碼:<input type="password" name="password"/><br> <input type="submit" value="登錄"/> </form> </body> </html>
2.servlet類
package it.cn.ServletDemo; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Servlet implementation class LoginServlet */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //處理中文亂碼的額問題 request.setCharacterEncoding("utf-8"); //獲取數據 String name=request.getParameter("username"); String password=request.getParameter("password"); //效驗用戶名和密碼是否正確 if(! "itcase".equals(name)) { /* * 附加項:創建一個cookie,保存用戶名 * 下次訪問login時,獲取cookie中的值添加到用戶名文本框中 */ Cookie cookie=new Cookie("uname", name); //設置cookie的命長 cookie.setMaxAge(60*60); //保存cookie response.addCookie(cookie); //如果成功,就把數據放到session中,並且重定向到succ1.jsp HttpSession session=request.getSession(); //向session中 session.setAttribute("name", name); response.sendRedirect("/SessionDemo/session2/succ1.jsp"); }else {//登錄失敗 //保存錯誤信息到request中 request.setAttribute("msg", "用戶名錯誤!"); //創建轉發器 RequestDispatcher qr=request.getRequestDispatcher("/session2/login.jsp"); qr.forward(request, response); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
3.登錄成功的頁面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String name=(String)session.getAttribute("name"); if(name==null){ //如果沒有登錄,用戶名為空,就返回登錄頁面 request.setAttribute("msg", "您還沒有登錄"); RequestDispatcher qr=request.getRequestDispatcher("/session2/login.jsp"); qr.forward(request, response); } %> <p color="blue" align="center"> 歡迎<%=session.getAttribute("name") %>來我校! </p> </body> </html>