zoukankan      html  css  js  c++  java
  • 案例9 -实现验证码功能

    1 改写jsp代码

    2 编写自动生成验证码的servlet

    直接使用模板

    3 实现点击动态改变

    <script type="text/javascript">
        function changeImg(obj) {
            obj.src="${pageContext.request.contextPath }/checkImg?time="+new Date().getTime();
        }
    </script>

    4 实现验证码的校验功能

    package www.test.web.servlet;
    
    import java.io.IOException;
    import java.sql.SQLException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import www.test.domain.User;
    import www.test.service.LoginService;
    
    public class LoginServlet extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            // 解决乱码问题
            request.setCharacterEncoding("UTF-8");
    
            // 获得页面输入的验证
            String checkCode_client = request.getParameter("checkCode");
            // 获得生成图片的文字的验证码
            String checkCode_session = (String) request.getSession().getAttribute("checkcode_session");
            // 比对页面的和生成图片的文字的验证码是否一致
            if (!checkCode_session.equals(checkCode_client)) {
                request.setAttribute("loginInfo", "您的验证码不正确");
                request.getRequestDispatcher("/login.jsp").forward(request, response);
                return; //验证码输入错误的话,就没有必要获取输入的用户名和密码
            }
            // 获取用户输入的数据  
            String username = request.getParameter("username");
            String password = request.getParameter("password");
    
            LoginService service = new LoginService();
            User user = null;
            try {
                user = service.findUser(username, password);
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
    
            if (user != null) {
                response.sendRedirect("/WEBTest24/index.jsp");
            } else {
                request.getRequestDispatcher("/login.jsp").forward(request, response);
                ;
            }
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }
    <div id="checkCodeInfo" style="color:red">${loginInfo}</div> 
  • 相关阅读:
    一个简单的进程察看器
    查找素数的程序
    两种动态创建对象的方法
    我对企业管理信息系统的看法
    下定决心,准备买dopod535,做基于M$ smartphone 2003(ce.net 4.2)的开发了
    工作流中对于事务处理的思考
    第二次安装.net2005地感受
    贴一个Microsoft Business Framework的图片上来,可能有些兄弟还不知道。
    SizeOf与Structure与Managed Code
    校园招聘技术面试方面的小题目
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8407056.html
Copyright © 2011-2022 走看看