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>
- 5.Servlet生成验证码和重定向实现
- Servlet实现网页重定向
- jsp和servlet重定向
- Servlet--转发和重定向
- servlet生成验证码验证的实现
- Servlet--Servlet转发和重定向
- 验证码生成和验证servlet
- Servlet 实现重定向几种方法
- 在Servlet中实现重定向
- Servlet 实现重定向几种方法
- Servlet 实现重定向几种方法
- servlet实现随即生成验证码图片
- 各种乱码、验证码、重定向和转发应用
- Servlet中的重定向和请求分派
- servlet的重定向和请求转发
- servlet jsp 重定向 和服务器跳转
- servlet请求转发和重定向
- 深入理解Servlet转发和重定向
- apache+tomcat集群配置
- 并发学习笔记(一):线程执行流程与synchronized关键字
- 贪心算法 田忌赛马(problem C)
- C++ 虚函数
- 解决Raspberry使用vim键盘布局问题
- 5.Servlet生成验证码和重定向实现
- JavaMelody监控Spring Service层和Spring Controller层
- 资料汇总
- Thread vs Runnable in Java
- handler中send和post方法的区别
- 继承
- 2016SDAU课程练习一1002 Problem C
- Java第四次实验要求
- 1019_计算二叉树的高度和结点数