案例9 -实现验证码功能

Posted jepson6669

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了案例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> 

 

以上是关于案例9 -实现验证码功能的主要内容,如果未能解决你的问题,请参考以下文章

jQuery---钢琴案例 (按下1-9数字键,能触发对应的mouseenter事件)

hibernate框架学习笔记9:多对多关系案例

Java基础语法学习9——运算符优先级及润年案例

9.19数组以及经典案例

2016.9.9《Oracle查询优化改写技巧与案例》电子工业出版社一书中的技巧

Hadoop集群(第9期)_MapReduce初级案例