案例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事件)