5.Servlet生成验证码和重定向实现

来源:互联网 发布:网络言论自由辩论 编辑:程序博客网 时间:2024/06/06 06:24

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>

0 0
原创粉丝点击