TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字、图片、网址等信息的条码图片。如下图
% D& {4 h- ^1 v, P0 j2 I q' `. Q
& P) N V6 v$ v W
4 [% s3 P0 E2 [9 P
二维码的特点:
4 k) a5 h6 X! K+ I/ b; y1.高密度编码,信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。5 O) A6 T' N- t* H s
2.编码范围广:该条码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码,用条码表示出来;可以表示多种语言文字;可表示图像数据。
5 |6 r9 N3 Y d5 D9 M& |$ z3.容错能力强,具有纠错功能:这使得二维条码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,损毁面积达50%仍可恢复信息。, ^- w" W" }0 H- s+ H
4.译码可靠性高:它比普通条码译码错误率百万分之二要低得多,误码率不超过千万分之一。1 }" ?6 Y5 b& e2 [
5.可引入加密措施:保密性、防伪性好。
0 ?5 t' Q4 [' a9 \' V6.成本低,易制作,持久耐用。
* I+ _" m. U5 O+ O- m2 n0 s9 O7.条码符号形状、尺寸大小比例可变。
# ]( T1 p5 C( f N8.二维条码可以使用激光或CCD阅读器识读。
2 S7 f5 P; v. r# ?) B+ _
" C3 z- E. I/ |$ ~- u- q- ?$ W( B9 d" h. z, ~' R) Q
这里我们借用现成的JAR QRCode.jar 来实现。" f- z8 J+ w. U( c6 H* p
" N; B( u& M- K; h: o0 q! ?8 L/ ]- Q
项目采用 struts2 2.3.20最新版本 后台采用json格式返回数据;0 f% i0 H. S8 F$ @2 l' L; w
struts.xml配置:
H5 N5 j; K8 A) |& A( D- <?xml version="1.0" encoding="UTF-8" ?>
( ~# i7 t9 @" T0 G$ E- _ - <!DOCTYPE struts PUBLIC5 J3 m& Q* \% x: R9 Z8 u
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN": N+ E! x. d" z! e' B
- "http://struts.apache.org/dtds/struts-2.3.dtd">
4 _( [- Q" j8 Q3 X7 W) @! u8 R/ j- h- W - <struts>5 i$ C: ^9 S) G& W
- <constant name="struts.devMode" value="false" />
3 H, O9 y7 V* e; H' s0 J - <constant name="struts.i18n.encoding" value="UTF-8"/>
0 l# l9 M8 L) |/ l7 p8 U: X I - <constant name="struts.multipart.maxSize" value="10701096"/><!-- 上传文件最大值 -->2 v$ @8 j3 y- L9 P; e
- <constant name="struts.multipart.saveDir" value="/tmp"/><!-- 上传文件设置属性 -->6 w2 Q) z! @. {9 [5 ?% @
- <constant name="struts.custom.i18n.resources" value="global" />
, J# ?& c2 C; j1 A7 M. |+ x - <constant name="struts.action.extension" value="action"></constant>
$ L+ m0 O/ N ]0 b - <package name="QRCode" extends="json-default">
; c$ i# s. ]8 i: U" ` - <action name="qRCodeAction_*" class="com.itstyle.action.QRCodeAction" method="{1}" >
1 P0 n* Y2 i; H4 E, B7 W - <result type="json">
1 ^7 D7 R, ^# f! l1 L( I0 D/ Q - <param name="root">message</param>
$ ^$ k6 F( ]8 o8 J1 _( N' A% [" l" N - </result>6 {& {- f* u. E( s% N3 [
- </action>
- q8 n1 w' a) O: e# c - </package>9 B: D& @- B3 c. W
- </struts>
复制代码
5 ~: B" _4 r7 b3 D! n
1 w/ s+ ^2 u+ o* X9 x# A3 e
8 S( i! [4 M9 \java生成和解析二维码demo源码4 z! o0 X9 O) _! A- p
, Q9 {9 E5 x+ b
4 u3 \3 p: ?( x1 }解压码:
! a1 S- H7 |! G% B9 } |3 Q/ B) f! @9 K4 ?+ P8 z
; X& T6 L" n# U8 q+ ^
6 f- A8 S' o1 t
* b4 {: }+ `9 D1 j) {) y2 H6 a7 S1 }0 Y8 ?, Y* M% ^
|
|