jsp生成二维码

来源:互联网 发布:数据库管理dba 编辑:程序博客网 时间:2024/06/06 12:39

如何用在JSP中生成二维码


1.需要用到的jar包

下载地址:http://pan.baidu.com/s/1eQQc5Ho


2.代码例子

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 {@Overridepublic 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.目前遇到的问题

小米似乎并不能扫出这个二维码

微信能扫出,但是多次才能成功一次,可能是分辨率太小了?

0 0
原创粉丝点击