睡不着... 逛论坛... 刚看见一个想要条形码的, 感觉有点意思, 模仿验证码写个例子 
package test.plugin;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import org.krysalis.barcode4j.impl.code39.Code39Bean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
import org.krysalis.barcode4j.tools.UnitConv;
import com.jfinal.kit.LogKit;
import com.jfinal.render.Render;
import com.jfinal.render.RenderException;
/**
 * 生成条形码 - Barcode4J
 *   
 * @author dufuzhong
 * @date 2017年8月1日
 *  jar : http://mvnrepository.com/artifact/net.sf.barcode4j/barcode4j-light/2.0
 *  
 *  代码参考处: http://www.cnblogs.com/littleatp/p/4815921.html
 *  代码参考处: http://blog.csdn.net/wabiaozia/article/details/52747772
 */
public class BarcodeRender extends Render {
    private String msg;
    
    BarcodeRender(String msg){
        this.msg = msg;
    }
    
    // 自行扩展自己需要的业务
    @Override
    public void render() {
        
        
        Code39Bean bean = new Code39Bean();
        
        // 精细度
        final int dpi = 150;
        // module宽度
        final double moduleWidth = UnitConv.in2mm(1.0f / dpi);
 
        // 配置对象
        bean.setModuleWidth(moduleWidth);
        bean.setWideFactor(3);
        bean.doQuietZone(false);
 
        String mime = "image/png";
        
        response.setHeader("Pragma","no-cache");
        response.setHeader("Cache-Control","no-cache");
        response.setDateHeader("Expires", 0);
        response.setContentType(mime);
        ServletOutputStream sos = null;
        BitmapCanvasProvider canvas = null;
        try {
            sos = response.getOutputStream();
            
            // 输出到流
            canvas = new BitmapCanvasProvider(sos, mime, dpi,
                    BufferedImage.TYPE_BYTE_BINARY, false, 0);
            
            // 生成条形码
            bean.generateBarcode(canvas, msg);
            
            // 结束绘制
            canvas.finish();
        } catch (IOException e) {
            if (getDevMode()) {
                throw new RenderException(e);
            }
        } catch (Exception e) {
            throw new RenderException(e);
        } finally {
            if (sos != null) {
                try {sos.close();} catch (IOException e) {LogKit.logNothing(e);}
            }
        }
    }
}测试一下:
//  /test/barcode/jfinal-20170801
@Clear()
public class BarcodeController extends Controller {
    
    public void index(){
        render(new BarcodeRender(getPara()));
    }
}
23333, 解码就不写了
 
 
 
 
 
 
 
