jsp生成二维码
2015-12-30 20:54
627 查看
如何用在JSP中生成二维码
1.需要用到的jar包
下载地址:http://pan.baidu.com/s/1eQQc5Ho2.代码例子
java类:package vo; import java.awt.*; import java.awt.image.BufferedImage; import com.swetake.util.Qrcode; public class ToDBC { String context; BufferedImage img; int width = 90; int height = 90; public ToDBC(String context){ try{ System.out.println(context); Qrcode testQrcode =new Qrcode(); testQrcode.setQrcodeErrorCorrect('M'); testQrcode.setQrcodeEncodeMode('B'); testQrcode.setQrcodeVersion(7); byte[] d = context.getBytes("UTF-8"); BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_BINARY); Graphics2D g = bi.createGraphics(); g.setBackground(Color.WHITE); g.clearRect(0, 0, width, height); g.setColor(Color.BLACK); // 限制最大字节数为119 if (d.length>0 && d.length <120){ boolean[][] s = testQrcode.calQrcode(d); for (int i=0;i<s.length;i++){ for (int j=0;j<s.length;j++){ if (s[j][i]) { g.fillRect(j*2,i*2,2,2); } } } } g.dispose(); bi.flush(); this.context = context; this.img = bi; } catch (Exception e) { e.printStackTrace(); } } public String getContext() { return context; } public BufferedImage getImg() { return img; } public int getWidth() { return width; } public int getHeight() { return height; } }
servlet类
package controler; import java.io.IOException; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import vo.*; public class CreateToDBC extends HttpServlet { @Override public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { ImageIO.write(new ToDBC(request.getHeader("Referer")).getImg(), "jpg", response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); } } }
jsp中img标签的调用
<img src="servlet/CreateToDBC">
3.目前遇到的问题
小米似乎并不能扫出这个二维码微信能扫出,但是多次才能成功一次,可能是分辨率太小了?
相关文章推荐
- JSON解析(1)
- js指定多个分割字符分割到同个数组中
- 124 js 前台日期显示格式和操作 & js生成table
- JavaScript全讲-必知的特性
- Javascript面向对象及组件详细介绍(五)原型链
- Javascript面向对象及组件详细介绍(四)包装对象
- Javascript面向对象及组件的详细介绍(三)面向对象的拖拽
- JavaScript字符串转换日期
- Javascript面向对象及组件开发(二)面向对象的写法
- Javascript中的几种继承方式比较
- Javascript中的几种继承方式比较
- Javascript面向对象及组件开发的详细介绍(一)
- 《JavaScript高级程序设计》第8-9章
- 《JavaScript高级程序设计》第6-7章
- 《JavaScript高级程序设计》第4-5章
- JavaScript设计模式简介
- knockoutjs二 observableArray的使用
- 【学习笔记javascript设计模式与开发实践(享元模式)----12】
- JavaScript 修改元素值
- JavaWeb自学之JavaScript学习笔记 Day-3