公司在给襄樊东风康明斯发动机公司开发关于物料采购方面的系统,接到上级指示我需要做一个小小的功能就是在页面形成一个箱标签,其中就包括显示出一位条形码和二维条形码,在网上查了很多资料,有些不是太全,有些也不是太明白,后来绞尽脑汁,调了又调可算是做出来了,下面是我的一些经验,希望对大家有所帮助。
我们先看下效果:
1.首先建立一个WEB项目---------
2.引入maskbarcode.jar包,下载地址:我的资源中 http://download.youkuaiyun.com/detail/yufan188/4108357
网上的jar包,有广告版的就是生成的条码中有 power by maskbar 这几个单词,也有后台N多输出的,还有必须刷新才能显示的包,总之,我传上去的包用起来比较爽,实践过
3.编写web.xml文件:
<!-- 配置一维条形码 -->
<servlet>
<servlet-name>maskbarcode</servlet-name>
<servlet-class>
com.mask.util.barcode.BarCodeServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>maskbarcode</servlet-name>
<url-pattern>*.bar</url-pattern>
</servlet-mapping>
4.建立JSP页面,完整代码如下:
<body>
<img src="maskbarcode.bar?code=C123456789" mce_src="maskbarcode.bar?code=C123456789"/>
</body>
好吧代码就是这么点,也比较简单,下面说下我理解的原理:
首先,在maskbarcode.jar中com.mask.util.barcode.BarCodeServlet,在个基于HttpServlet的类,这就是为什么要配置的原因,
在其内部实现过程就是把你传进去的code=C123456789,根据一系列算法形成一张图片
最后,在JSP页面里面一引入就OK了,我说的引入是指直接生成到JSP页面中,中间不去与硬盘打交道,也就是你不可能在你的机器上找到这张图片,有个好处啊,你的资源不会被损坏,也不用清理,爽。
-----------------------------------------下面的比较重要-------------------------------------------------
大家看到我在页面中生成了三张一维条形码:
我最开始的配置与写法是这样的:
<!-- 配置一维条形码 -->
<servlet>
<servlet-name>maskbarcode</servlet-name>
<servlet-class>
com.mask.util.barcode.BarCodeServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>maskbarcode</servlet-name>
<url-pattern>*.bar</url-pattern>
</servlet-mapping>
JSP:
<body>
<img src="maskbarcode.bar?code=C123456789" mce_src="maskbarcode.bar?code=C123456789"/>
<img src="maskbarcode.bar?code=C223456789" mce_src="maskbarcode.bar?code=C223456789"/>
<img src="maskbarcode.bar?code=C323456789" mce_src="maskbarcode.bar?code=C323456789"/>
</body>
这样写也可以生成,但是有错误,大大的错误,你多F5几次或一次就够,发现图片出现问题了
为什么,我想了很久,大家都把code往一个servlet中传,能不错么,好吧,我想了个最弱的方法(反正实现了,也没错,不知道正确不):
<!-- 配置一维条形码 -->
<servlet>
<servlet-name>maskbarcode</servlet-name>
<servlet-class>
com.mask.util.barcode.BarCodeServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>maskbarcode</servlet-name>
<url-pattern>*.x1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>maskbarcode2</servlet-name>
<servlet-class>
com.mask.util.barcode.BarCodeServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>maskbarcode2</servlet-name>
<url-pattern>*.x2</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>maskbarcode3</servlet-name>
<servlet-class>
com.mask.util.barcode.BarCodeServlet
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>maskbarcode3</servlet-name>
<url-pattern>*.x3</url-pattern>
</servlet-mapping>
我直接给你配三个,你还错?
JSP:
<body>
<img src="x1.x1?code=C123456789" mce_src="x1.x1?code=C123456789"/>
<img src="x2.x2?code=C223456789" mce_src="x2.x2?code=C223456789"/>
<img src="x3.x3?code=C323456789" mce_src="x3.x3?code=C323456789"/>
</body>