code学习

HttpSession 第二例|学习笔记

开发者学堂课程【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)