Zxing实现在线二维码生成程序

   日期:2024-10-17     来源:网络整理    作者:佚名     移动:http://mapp.b2b-1.com/news/506236.html
核心提示:Zxing实现在线二维码生成程序关于zxing的使用请参考笔者的另外一篇博文:Java二维码生成与解码工具Zxing使用在文本框中输入内容后点击生成二维码按钮,应用自动对文本框中的内容进行编码,生成二维码图片显示在下方。

Zxing实现在线二维码生成程序

关于zxing的使用请参考笔者的另外一篇博文:Java二维码生成与解码工具Zxing使用

首先我们来看看效果:

在文本框中输入内容后点击生成二维码按钮,应用自动对文本框中的内容进行编码,生成二维码图片显示在下方。

要实现这个功能并不复杂Zxing实现在线二维码生成程序,大致思路如下:

点击按钮时,获取文本框中的内容提交到一个Servlet进行处理google zxing 二维码,在该Servlet中使用Zxing工具库对内容进行编码,返回一张图片即可。接下来看一下这个程序的实现步骤。

1.新建一个Java Dynamic Web Project。

2.在根目录下新建一个index.jsp页面,即为上面动态图页面:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>二维码在线生成工具title>
<script type="text/javascript" src="js/jquery-2.0.3.js">script>
head>
<body>
<textarea rows="10" cols="50" id="BarCodeContent">
textarea>
<br/>
<button id="GenBarCode">生成二维码button>
<br/> 
<img id="BarCode" alt="BarCode" >
<script type="text/javascript">
$("#BarCode").hide();
$("#GenBarCode").click(function(){ 
    var content = $("#BarCodeContent").val();
    content = content.trim();
    if(content == "" )
    {
        alert("请输入内容");
        return;
    }
    var path = "genBarCode.do?content='" + content + "'"
    $("#BarCode").attr("src",path);
    $("#BarCode").show();
}); 
script>
body>
html>

这里笔者使用到了Jquery库,对Jquery不熟的朋友可以先去简单的了解一下。

我们使用img标签在页面中显示一张图片:

<img id="BarCode" alt="BarCode" >

$("#BarCode").hide();通过这段代码让图片处于隐藏状态,和一般做法不同的是这里我们并不指定图片的src属性,当用户点击按钮时,我们响应按钮的点击事件,在事件处理代码中114信息网sitemaps,设置该img标签的src属性并把该图片设置为显示状态:

$("#GenBarCode").click(function(){ 
    var content = $("#BarCodeContent").val();
    content = content.trim();
    if(content == "" )
    {
        alert("请输入内容");
        return;
    }
    var path = "genBarCode.do?content='" + content + "'"
    $("#BarCode").attr("src",path);
    $("#BarCode").show();
});

我们把img标签的src属性指定为一个http请求.do,以编辑框中的内容作为参数,接下我们在web.xml文件中配置一个servlet处理该请求。

3.配置二维码生成Servlet。

打开web.xml文件google zxing 二维码,为请求.do配置一个servlet,内容如下:


<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>zxing_webdisplay-name>
  <welcome-file-list> 
    <welcome-file>index.jspwelcome-file> 
  welcome-file-list>
 <servlet> 
        <servlet-name>genBarCodeservlet-name>
        <servlet-class>
            com.csii.zxing.servlet.GenBarCodeServlet
        servlet-class>
 servlet> 
  <servlet-mapping>
    <servlet-name>genBarCodeservlet-name>
    <url-pattern>/genBarCode.dourl-pattern>
  servlet-mapping>
web-app>

剩下的内容就是编写二维码生成逻辑代码,新建一个Servlet,类名com.csii.zxing.servlet.,内容如下:

package com.csii.zxing.servlet;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Hashtable;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
public class GenBarCodeServlet  extends HttpServlet{
    private static final long serialVersionUID = -5979464050181485740L;
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doPost(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
            //获取本文框中输入的内容
            String text = (String) req.getParameter("content");
            int width = 200;   
            int height = 200;   
            String format = "gif";  
            //设置Http响应头中的Content-Type为image/gif,表示该Http返回内容为一张gif图片
            resp.setHeader("Content-Type", "image/gif");
            Hashtable hints = new Hashtable();  
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            BitMatrix bitMatrix = null;
            try {
                bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, hints);
            } catch (WriterException e1) { 
                e1.printStackTrace();
            }  
            //获取http响应输出流
            OutputStream stream = resp.getOutputStream();
            try { 
                //將二维码数据写到Http响应输出流中
                MatrixToImageWriter.writeToStream(bitMatrix, format, stream);
            } catch (IOException e) { 
                e.printStackTrace();
            }
    }
}

至此为止这个程序已经完成,很简单吧,需要注意一点,我们要把core-3.2.0.jar和javase-3.2.0.jar两个jar包添加到WEB-INF/lib目录下,项目结构如下图所示:

【本文来源于互联网转载,如侵犯您的权益或不适传播,请邮件通知我们删除】

免责声明:Zxing实现在线二维码生成程序来源于互联网,如有侵权请通知我们删除! (留言)
 
标签: google zxing 二维码
 
更多>同类行业资讯
0相关评论

图文信息
最新发布
行业资讯
最受欢迎
网站首页  |  网站地图  |  RSS订阅  |  违规举报  |  B2B-1.COM