zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    element-ui 多张图上传
    js json生取key,value 值
    iview DatePicker 回显验证报错
    iview的Select控制value为数字类型时表单验证无法通过
    iview 自定义树形
    tree 树形递归修改 key
    根据月份选择 生成这个月的每一天
    微信小程序超出隐藏省略号和自动换行
    uni-app picker select 取想要的值
    element-ui 表格fixed 样式修改
  • 原文地址:https://www.cnblogs.com/danyuzhu11/p/6668696.html
Copyright © 2011-2022 走看看