码迷,mamicode.com
首页 > 其他好文 > 详细

案例9 -实现验证码功能

时间:2018-02-02 23:24:27      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:enc   自动生成   type   set   使用   错误   height   session   代码   

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 -实现验证码功能

标签:enc   自动生成   type   set   使用   错误   height   session   代码   

原文地址:https://www.cnblogs.com/jepson6669/p/8407056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!