1.创建login.HTML页面
<form action="/testServlet/LoginServlet" method="post">
<table border="1">
<tr>
<th>Username:</th>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<th>Password:</th>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<th>VerifyCode:</th>
<td><input type="text" name="checkCode" /></td>
<td><img src="http://localhost:8080/testServlet/Demo1" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="submit" /></td>
</tr>
</table>
</form>
2.编写生成随机验证码的servlet类
public class Demo1 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");
//以内存中构造一副图片
BufferedImage image = new BufferedImage(80,25,BufferedImage.TYPE_INT_RGB);
//取得画笔
Graphics g = image.getGraphics();
//设置字体大小和颜色
g.setColor(Color.YELLOW);
g.setFont(new Font("黑体",Font.BOLD,22));
//在图片中,画一个字符串"1A2B"
g.drawString(getString(),20,20);
//将内存中的图片以JPG格式输出到浏览器
ImageIO.write(image,"JPG",response.getOutputStream());
}
//产生一个随机字符串
private String getString(){
String str = "";
String numberAndLetter="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
int length = numberAndLetter.length();
for(int i=1;i<=4;i++){
if(i==1 || i==3){//数字
while(true){
Random random = new Random();
int index = random.nextInt(length);
String value = numberAndLetter.substring(index,index+1);
if(value.matches("[0-9]")){
str += value;
break;
}
}
}else if(i==2 || i==4){//大小字母
while(true){
Random random = new Random();
int index = random.nextInt(length);
String value = numberAndLetter.substring(index,index+1);
if(value.matches("[A-Za-z]")){
str += value;
break;
}
}
}
}
return str;
}
}
3.写LoginServlet类
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.setContentType("text/html;charset=GBK");
String username = request.getParameter("username");
String password = request.getParameter("password");
String checkCode = request.getParameter("checkCode");
System.out.println("username:"+username);
System.out.println("password:"+password);
System.out.println("checkCode:"+checkCode);
//重定向到message.html 页面
response.sendRedirect("http://localhost:8080/testServlet/message.html");
}
}
4.创建重定向的message.html页面
<html>
<head>
<title>message.html</title>
<meta name="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
重定向 <br>
</body>
</html>