Servlet , 实现 验证码功能

来源:互联网 发布:windows10 内置ubuntu 编辑:程序博客网 时间:2024/05/21 20:32

jsp界面:

<body>      <h1>登录</h1>      <form action="/day11_1/LoginServlet" method="post">        用户名:<input type="text" name="username"/></br>        密    码:<input type="password" name="password"/></br>       验证码:<input type="text" name="verifyCode" size="3"/>       <img src="/day11_1/VerifyCodeServlet" id="vc" >       <a href="javascript:change()">换一张</a>       </br>       <input type="submit" value="登录"/>      </form>  </body>    <script type="text/javascript">     function change(){       var imgEle=document.getElementById("vc");       imgEle.src="/day11_1/VerifyCodeServlet?"+new Date().getTime();     }  </script></html>

生成验证码的Servlet,需要导入生成验证码的的 jar包

import java.awt.image.BufferedImage;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 cn.itcast.vcode.utils.VerifyCode;public class VerifyCodeServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {    VerifyCode   vc = new VerifyCode();    BufferedImage image = vc.getImage();    String text=vc.getText();    request.getSession().setAttribute("session_vcode", text);    VerifyCode.output(image, response.getOutputStream());}}

处理验证码是否正确的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;public class LoginServlet extends HttpServlet {public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {              request.setCharacterEncoding("utf-8");              response.setContentType("text/html;charset=utf-8");              String vc = request.getParameter("verifyCode");              String sessionVc= (String)request.getSession().getAttribute("session_vcode");    if(sessionVc.equalsIgnoreCase(vc)){    response.getWriter().print("ok");    }    else{    response.getWriter().print("错了");    }}}


0 0
原创粉丝点击