zoukankan      html  css  js  c++  java
  • 多用户登录

    登录界面:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>用户登录</title>
    
    <link rel="stylesheet" type="text/css" href="css/style.css">
    
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/vector.js"></script>
    
    </head>
    <body>
    
    <div id="container">
        <div id="output">
            <div class="containerT">
                <h1>用户登录</h1>
                <form class="form" id="entry_form" action="LoginServlet" method="post">
                    <input type="text" placeholder="用户名" id="entry_name"  name="name">
                    <input type="password" placeholder="密码" id="entry_password" name="password">
                    <input type="text"  placeholder="验证码" name="checkCode" />
                    <img src="CodeServlet"/><br/>
                    <span>${error_code }</span><br/>
                    <button type="submit" id="entry_btn">登录</button>
                    <br>
                    <input type="button" value="注册" onClick="location.href='register.jsp'">
                    <div id="prompt" class="prompt"></div>
                </form>
            </div>
        </div>
    </div>
    
    <script type="text/javascript">
        $(function(){
            Victor("container", "output");   //登录背景函数
            $("#entry_name").focus();
            $(document).keydown(function(event){
                if(event.keyCode==13){
                    $("#entry_btn").click();
                }
            });
        });
    </script>
    <div style="text-align:center;">
    </div>
    </body>
    </html>
    login

    用户验证:

    package com.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.bean.Players_user;
    import com.dao.usersDao;
    
    /**
     * 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 {
            // TODO Auto-generated method stub
            //response.getWriter().append("Served at: ").append(request.getContextPath());
            
            //内置对象request response 内置对象
            request.setCharacterEncoding("UTF-8");
            //获取session
            HttpSession session=request.getSession();
            
    
            //获取用户输入的验证码
            String checkCode=request.getParameter("checkCode");
            //获取session中的验证码
            String sessionCode=(String)session.getAttribute("sessionCode");
            System.out.println("session中"+sessionCode);
            System.out.println("checkCode中"+checkCode);
            //校验验证码是否正确
            if(checkCode.equals(sessionCode)) {
                
    
                //接受用户提交的表单数据
                //request对象只对当前数据请求有效,刷新之后,数据丢失
                String players_name=request.getParameter("name");
                String players_password=request.getParameter("password");
                
                
                //判断用户名和密码是否正确
                //查询数据库获取数据信息
                usersDao dao=new usersDao();
                Players_user players_user=dao.CheckLogin(players_name,players_password);
                
             if(players_user!=null) {
                 
                 
                session.setAttribute("players_user", players_user);
                session.setMaxInactiveInterval(10);//若里面的数值为零或者负值的时候,表示session里面的数值永远有效;
                //若里面的数值为正的时候表示session的有效时间,单位为秒
                
                if(players_name.equals("admin"))
                {
                     response.sendRedirect("teams.jsp");
                     return;
                }
                
                response.sendRedirect("players.jsp");
                }else {
                    response.sendRedirect("login.jsp");
                }
                
            }else {
                //验证码不对
                request.setAttribute("error_code", "验证码不匹配");
                request.getRequestDispatcher("login.jsp").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);
        }
    
    }
    LoginServlet

    验证码:

    package com.servlet;
    
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.util.Random;
    
    import javax.imageio.ImageIO;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class CodeServlet
     */
    @WebServlet("/CodeServlet")
    public class CodeServlet extends HttpServlet {
    
        private static final Object code = null;
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            //response.getWriter().append("Served at: ").append(request.getContextPath());
                int length=100;
                int height=20;
    
                //1.创建一对象,验证码图片对象
                BufferedImage image = new BufferedImage(length, height, BufferedImage.TYPE_INT_RGB);
                //2.美化图片,填充背景色
                Graphics gra = image.getGraphics();
                //设置背景填充颜色
                gra.setColor(Color.white);//设置填充颜色
                gra.fillRect(0,0,length,height);//设置填充范围
                //设置字体、加粗、斜体、大小
                gra.setFont(new Font("微软雅黑",Font.BOLD,20));
                //设置字体的随机颜色数组
                Color[] colors= new Color[]{Color.BLUE,Color.GREEN,Color.RED};
                //创建要出现的验证码字符串
                String str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
    
                Random random = new Random();
                String code="";
                for (int i = 1; i <=4; i++) {
                    //生成随机角标索引
                    int index = random.nextInt(str.length());
                    //获取随机字符
                    char c = str.charAt(index);
                    code+=c;
                    //设置随机字符的字体随机颜色
                    gra.setColor(colors[random.nextInt(colors.length)]);
                    //写验证码,以及验证码应该出现的位置
                    gra.drawString(c+" ",i*15+5,20);
                    // code=code+c;//将生成的单个字符拼接成字符串
                }
                //System.out.println("code中"+code);
                //画2条干扰线,防止被别人破解
                for (int i = 1; i <=2 ; i++) {
                    //随机生成x1点和x2点的横坐标位置
                    int x1 = random.nextInt(length);
                    int x2 = random.nextInt(length);
                    //随机生成y1点和y2点的纵坐标位置
                    int y1 = random.nextInt(height);
                    int y2 = random.nextInt(height);
    
                    //画干扰线,设置随机颜色
                    gra.setColor(colors[random.nextInt(colors.length)]);
                    gra.drawLine(x1,y1,x2,y2);
                }
                //将图片输出到页面展示
                ImageIO.write(image,"jpg",response.getOutputStream());
                
                response.getOutputStream().flush();
                response.getOutputStream().close();
                
                //把验证码放入session
                HttpSession session=request.getSession();
                session.setAttribute("sessionCode",code);
                
              //  System.out.println("session中"+code);
    
            }
    
        /**
         * @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);
        }
    
    }
    CodeServlet
  • 相关阅读:
    Github进不去解决方法
    微信小程序中使用iconfont的方法
    curl实现SFTP上传下载文件
    curl实现SFTP上传下载文件
    curl不支持sftp的解决方法
    sscanf遇到回车换行认为字符串结束,怎样让它忽略这些回车换行继续搜索整个字符串?
    史上最全阿里 Java 面试题总结及答案
    VS Code的Error: Running the contributed command: ‘_workbench.downloadResource‘ failed解决
    云锵投资 2021 年 07 月简报
    看完段永平的100条思考,我终于悟出他为何这么牛…(转载)
  • 原文地址:https://www.cnblogs.com/hhjing/p/13296134.html
Copyright © 2011-2022 走看看