<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html >
<head >
<title > 登陆页面</title >
<meta http-equiv ="keywords" content ="keyword1,keyword2,keyword3" >
<meta http-equiv ="description" content ="this is my page" >
<meta http-equiv ="content-type" content ="text/html; charset=UTF-8" >
</head >
<body >
<form action ="/Session/servlet/LoginServlet2" method ="post" >
用户名:<input type ="text" name ="username" > <br />
密码:<input type ="password" name ="password" > <br />
认证码:<input type ="text" name ="checkcode" > <img src ="/Session/servlet/ImageServlet" > <br />
<input type ="submit" value ="登陆" >
</form >
</body >
</html >
package login2;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet2 extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String checkcode = request.getParameter("checkcode" );
String s_checkcode = (String) request.getSession().getAttribute("checkcode" );
if (checkcode==null || s_checkcode==null || !checkcode.equals(s_checkcode)){
System.out.println("认证码错误!!" );
return ;
}
}
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
package login2;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ImageServlet extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("Expires" , "-1" );
response.setHeader("Cache-Control" , "no-cache" );
response.setHeader("Pragma" , "no-cache" );
response.setHeader("Content-type" , "image/jpeg" );
BufferedImage image = new BufferedImage(80 ,20 ,BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) image.getGraphics();
g.setColor(Color.WHITE);
g.fillRect(0 , 0 , 80 , 20 );
g.setColor(Color.BLUE);
g.setFont(new Font(null ,Font.BOLD,20 ));
String checkcode = makeNum();
request.getSession().setAttribute("checkcode" , checkcode);
g.drawString(checkcode, 0 , 20 );
ImageIO.write(image, "jpg" , response.getOutputStream());
}
private String makeNum () {
Random r = new Random();
String num = r.nextInt(9999999 ) + "" ;
StringBuffer sb = new StringBuffer();
for (int i=0 ;i<7 -num.length();i++){
sb.append("0" );
}
num = sb.toString()+num;
return num;
}
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}