使用session实现一次性验证码
在登录页面和各种页面,会看到有验证码输入,这样做的目的是为了防止密码猜测工具破解密码,保护了用户密码安全,验证码只能使用一次,这样就给密码猜测工具带来了很大的困难,基本上阻断了密码猜测工具的使用。
可以使用session获得一次性验证码。先看一下登录页面,即显示验证码的页面,代码为:
package com.you.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginFormServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();HttpSession session = request.getSession(false);if(session == null) {out.print("验证码处理问题");return;}String saveCode = (String)session.getAttribute("check_code");if(saveCode == null) {out.print("验证码处理问题");return;}String checkCode = request.getParameter("check_code");if(!saveCode.equals(checkCode)) {out.print("验证码无效!");return;}session.removeAttribute("check_code");out.print("验证码通过,服务器正在校验用户名和密码!");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}