Servlet , 實現 驗證碼功能

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("錯了");
		    }
	}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章