• session案例:完整的登录过程


    案例2:演示保存用户登录信息(精通)
    * 案例相关页面和Servlet:
    > login.jsp:登录页面
    > succ1.jsp:只有登录成功才能访问的页面
    > succ2.jsp:只有登录成功才能访问的页面
    > LoginServlet:校验用户是否登录成功!
    * 各页面和Servlet内容:
    > login.jsp:提供登录表单,提交表单请求LoginServlet
    > LoginServlet:获取请求参数,校验用户是否登录成功
    <> 失败:保存错误信息到request域,转发到login.jsp(login.jsp显示request域中的错误信息)
    <> 成功:保存用户信息到session域中,重定向到succ1.jsp页面,显示session域中的用户信息
    > succ1.jsp:从session域获取用户信息,如果不存在,显示“您还没有登录”。存在则显示用户信息
    > succ2.jsp:从session域获取用户信息,如果不存在,显示“您还没有登录”。存在则显示用户信息

    --------------------------------------------------------------------------

    1、login.jsp

    <body>
    <h1>欢迎登录XXX系统</h1>

    <%
    String uname = "";
    Cookie[] cs = request.getCookies();
    if (cs != null) {
    for (Cookie c : cs) {
    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>
    <form action="/session/loginservlet" method="post">
    用户名:<input type="text" name="username" value="<%=uname %>" > <br/>
    密码:<input type="password" name="password" /><br />
    <input type="submit" value="提交"> <br />


    </form>
    </body>

    ----------------------------------------------------------

    2、loginservlet

    //字符编码

    request.setCharacterEncoding("UTF-8");

    //从request域中获取username,password
    String username=(String)request.getParameter("username");
    String password=(String)request.getParameter("password");

    //如果输入的用户名是wangdanyu,表示登录成功,页面重定向到succ1.jsp
    if("wangdanyu".equalsIgnoreCase(username)){

    //如果登录成功,讲用户名保存到cookie
    Cookie cookie=new Cookie("uname",username);
    cookie.setMaxAge(60*60*24);
    response.addCookie(cookie);


    //登录成功
    HttpSession session=request.getSession();
    //重定向
    session.setAttribute("username", username);
    response.sendRedirect("/session/succ1.jsp");

    }else{
    //登录失败,request域中插入错误提示
    request.setAttribute("msg", "用户名或密码错误");
    //转发
    request.getRequestDispatcher("/login.jsp").forward(request, response);
    }

    ------------------------------------------------------------------------

    3、succ1.jsp

    <body>

    //防止用户直接访问该页面,所以,先从session中获取信息
    <%
    String username=(String)session.getAttribute("username");
    if(username==null){
    request.setAttribute("msg", "您还没有登录");
    request.getRequestDispatcher("/login.jsp").forward(request, response);
    return;
    }
    %>
    <h1>登录成功:<%=session.getAttribute("username") %></h1>

    </body>

  • 相关阅读:
    网页返回码大全
    求数组中子数组的最大和
    什么是面向对象?面向对象与面向过程的区别?
    Java内部类
    Java拆箱装箱
    linux中su和sudo区别
    Linux 中账户管理
    解决warn appiumdoctor bin directory for $java_home is not set
    Moco之include
    Mock server 之 Moco的使用
  • 原文地址:https://www.cnblogs.com/danyuzhu11/p/6668696.html
Copyright © 2020-2023  润新知