文件目录
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>