Java进阶之JSP生成条形码知识点总结
JSP生成条形码 实例说明 条形码是用于区分产品的一组编号,但是以条码形式呈现给用户,例如图书上的ISBN编码、超市商品的条形码、各种电子产品和保修凭证上的条形码等等。本实例在JSP页面实现了条形码的在线生成功能用户在如图1所示的页面中可以输入要生成条形码的产品编号,也可以包含英文字母,单击“生成条形码”按钮,在图2所示的页面中会生成各种编码格式的条形码图片。
图一 输入产品编号

图二 打印出的条形码
技术要点 本实例使用了开源的JBarcodeBean组件。该主页的下载网址为http://jbarcodebean.sourceforge.net/。它是一个JFC Swing兼容的JavaBean组件,主要用来产生条形码。JBarcodeBean支持当前一些流行的条形码格式,例如Code 128,Code 39,ExtendedCode 39,Codabar Interleaved Code 25 ,MSI ,EAN-13,EAN-8等。 本实例使用的JBarcodeBean组件版本为1.1.5。下面分别介绍实例中应用到该组件的关键技术。 (1)设置条形码显示文本 条形码都是根据产品编号生成的,那么这个产品编号就是条形码的文本,通过JBarcodeBean类的setShowText()方法可以设置生成的条形码图片是否包含这个文本信息。其语法格式如下: setShowText(Boolean show) show:如果需要显示条形码文本,设置该参数为true,否则设置为。 (2)输出条形码 JBarcodeBean类的gifEncode()方法用于输出GIF格式的条形码图片,输出方式可以是任何的Java输出流。其语法格式如下: gifEncode(OutputStream out) out:任何类型的Java输出流对象。 本实例使用gifEncode()方法将条形码输出到应答对象的输出流,客户端会直接显示GIF格式的条形码图片。关键代码如下。barcode.setCodeType(codeType); //设置指定编码类型 barcode.setCode(request.getParameter("code")); // 设置条形码数值 barcode.setBarcodeHeight(70); //设置条形码的高度 barcode.setCheckDigit(false); barcode.setFont(barcode.getFont().deriveFont(14)); //设置文本字体 barcode.gifEncode(out); //输出条形码 开发步骤 (1)编写index.jsp首页面,在首页面中定义接收产品编号的文本框和执行条码生成的提交按钮。程序关键代码如下。(2)编写result.jsp页面,这个页面将接收首页中用户输入的产品编号,然后把将产品编号传递给ServletTest类,并指定不同的编码格式,在页面中显示各种编码的条形码。关键代码如下。
(3)编写CodeType接口,在该接口中定义静态的常量,使用这些常量分别是代表不同的编码格式,关键代码如下。
(4)编写ServletTest类,它是处理条码生成请求的Servlet。在给类中创建JBarcodeBean类的全局成员变量barcode,它将被其他方法调用。关键代码如下。
public class ServletTestextends HttpServlet { JBarcodeBean barcode;编写Servlet的初始化方法init(),在该方法中初始化JBarcodeBean类的对象,并设置该对象在生成条形码时,显示条形码的文本信息。关键代码如下。 public void init(ServletConfig conf) throwsServletException { super.init(conf); barcode = new JBarcodeBean(); // 初始化条形码工具类 barcode.setShowText(true); //设置生成的条形码显示文本信息 } 编写processRequest()方法,在本实例中该方法处理处理GET方法和POST方法的页面请求,它通过matchType()方法确定生成条形码的编码类型,然后生成生成条形码的其他参数信息,例如生成条形码的产品编号、条形码的高度、编码类型等。最后,将生成的条形码输出到客户端的输出流。关键代码如下。编写matchType()方法,该方法用于生成和页面请求的编码格式相匹配的条形编码对象。关键代码如下。