zoukankan      html  css  js  c++  java
  • 使用session和cookie实现用户登录:一个登录页面,一个servlet,一个登录成功页面

    文件目录

    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>
  • 相关阅读:
    information_schema
    面包屑路径导航
    mysql5.7.26安装
    菜单权限作为父权限
    权限控制到按钮
    二级菜单
    留言板和jq轮播图
    M商城
    表单
    w3c
  • 原文地址:https://www.cnblogs.com/zhilili/p/10702784.html
Copyright © 2011-2022 走看看