开发者学堂课程【JSP 快速入门:HttpSession 第二例】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/33/detail/713
HttpSession 第二例
内容介绍:
一. 分析保存用户登录信息的方法
二. 代码创建
一.分析保存用户登录信息的方法
(1)创建登录表单 login.jsp
登陆表单包括用户名和密码,表单绝大部分指向 LoginServlet 。 LoginServlet 用来获取表单数据并且校验用户名和密码是否正确,且错误时可以显示错误信息,正确时,保存用户信息到 session 中,重定向到 succ1.jsp ;若错误,保存错误信息到 request 域,转发回到 login.jsp 。判断用户名与密码是否正确可自己设定。
(2)成功页面1 succ1.jsp (登录后的用户可以访问)
从session中获取用户信息,如果存在,说明已经登录显示用户名;如果不存在,向 request 域保存错误信息,转发到login.jsp 。
(3)成功页面2 succ2.jsp (登录后的用户可以访问)
与 succ1.jsp 一样。从session中获取用户信息,如果存在,说明已经登录显示用户名;如果不存在,向 request 域保存错误信息,转发到login.jsp 。
二.代码创建
(1)创立 session 2文件夹
(2)在 session2 中依次创立 login.jsp , succ1.jsp , succ2.jsp 及 LoginServlet 。
(3)login.jsp 提供登录表单并显示错误信息
代码为:
登录
<%
String uname = ””;
Cookie[] cs = request.getCookie();
if(cs != null){
for(Cookie c :cs){
if(”uname”.eqals(c.getName())){
uname = c.getValue();
}
}
}
String message = ””;
String msg = (Sring)request.getAttribute(”msg”);
if(msg !=null){
message = msg;
}
%>
<%=message %><>
action=”/day11-3/LoginServlet”method=”post”>
用户名:”/>
密码:
(4)LoginServlet 获取表单数据,校验用户名和密码是否正确并将用户名保存到cookie 中,发送给客户端浏览器
LoginServlet 设定为 doPost() ,前缀及无用注释删掉。获取表单数据包括处理中文数据和获取。校验时,若正确,保存用户信息到 session 中并重新定向到 succ1.jsp ;若失败,保存错误信息到 request 域中并转发至 login.jsp 。
代码为:
request.setCharacterEncoding(”utf-8”);
String username = request.getParameter(”username”);
String password = request.getParameter(”password”);
if(!”itcast”.equalsIgnoreCase(username))
Cookie cookie = new Cookie(”uname”,username);
cookie.setMaxAge(60*60*24);
response.addCookie(cookie);
HttpSession Session = request.getSession();
sesseion.setAttribute(”username”,username);
response.sendRedirect(”/day11-3/session2/succ1.jsp”)
else{
request.setAttribute(”msg”,”用户名或密码错误!”);
RequestDispatcher qr = request.getRequestDispatcher(”/session2/login.jsp”);
qr.forward(request,response);
}
(4)succ1.jsp
代码为:
<%
String username =(String)session.getAttribute(”username”);
if(username==null){
request.setAttribute(”msg”,”您还没有登录,不要冒充领导!”);
requestgetRequestDispatcher(”/session2/login.jsp”).forward(request,response);
return;
}
%>
欢迎欢迎,热烈欢迎,欢迎<%=username%>领导指导工作!
(5)succ2.jsp(同succ1.jsp)