JSP中的认证码
来源:互联网 发布:橘子网络电视柠檬tv 编辑:程序博客网 时间:2024/05/16 03:08
package cn.itcast.response;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;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 responseDemo2 extends HttpServlet {private static final int WIDTH = 120;private static final int HEIGHT = 25;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {BufferedImage image = new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_INT_RGB);Graphics g = image.getGraphics();//设置背景颜色setBackGroud(g);//设置边框setBord(g);//画随机线setRandomLine(g);//写随机数setRandomNum((Graphics2D)g);//Graphics2D才有旋转函数//写回给浏览器//response.setHeader("content-type", "jpeg"); response.setContentType("image/jpeg"); response.setHeader("Expires", "-1"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache");ImageIO.write(image, "jpg", response.getOutputStream());}private void setBackGroud(Graphics g) {g.setColor(Color.WHITE);g.fillRect(0, 0, WIDTH, HEIGHT);//填充背景色}private void setBord(Graphics g) {g.setColor(Color.BLUE);g.drawRect(1, 1, WIDTH-2, HEIGHT-2);}private void setRandomLine(Graphics g) {for(int i=0;i<5;i++){int x1 = new Random().nextInt(WIDTH);int y1 = new Random().nextInt(HEIGHT);int x2 = new Random().nextInt(WIDTH);int y2 = new Random().nextInt(HEIGHT);g.setColor(Color.GREEN);g.drawLine(x1, y1, x2, y2);}}private void setRandomNum(Graphics2D g) {g.setColor(Color.RED);g.setFont(new Font("宋体", Font.BOLD, 20));int x=5;String base = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec";for(int i=0;i<4;i++){String ch = base.charAt(new Random().nextInt(base.length()))+"";int degree = new Random().nextInt()%30;//(-30,30)g.rotate(degree*Math.PI/180, x, 20);g.drawString(ch, x, 20);g.rotate(-degree*Math.PI/180, x, 20);x=x+30;}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}}
HTML代码:
<!DOCTYPE html><html> <head> <title>register.html</title> </head> <body> <form action="post"> 用户名:<input type="text" name ="username"><br/> 密码:<input type="password" name="password"><br/> 认证码:<input type="text" name="checkcode"><image src="/WebProject1/servlet/responseDemo2"><br/> <input type="submit" name="提交"></input> </form> </body></html>
0 0
- JSP中的认证码
- 图形认证码技术的JSP实现
- JSP中的验证码
- asp.net中的认证
- http中的认证
- RPC中的UNIX认证
- Django中的用户认证
- Django中的用户认证
- Django 中的用户认证
- WinHTTP中的认证问题
- WinHTTP中的身份认证
- keystonemiddleware中的token 认证
- Django 中的用户认证
- Django 中的用户认证
- PHP中的HTTP认证
- django中的用户认证
- jsp中的验证码代码
- jsp中的${}
- 【学习15】计时器(Schedule)
- mysql数据库datatime类型存储
- poj2987 Firing 最大权闭合图 (最大流)
- 排序概述
- Java多线程之~~~~synchronized 方法
- JSP中的认证码
- java在label 上设置图片并且可以随便改变大小的方法
- 非阻塞select方式解析
- 1005. 继续(3n+1)猜想 (25) (ZJUPAT 数学)
- 双缓冲是怎么提速的
- POJ 1002 电话号码排序查重
- 标签管理
- 安卓项目开发实战(1)--首页顶部菜单BAR实现
- JDK环境变量配置