Java后台生成二维码,前端页面调用

二维码三部曲,这三个就可以直接生成二维码了到页面了

工具类

public class QuickMarkUtil {
     /**
    37      * 生成包含字符串信息的二维码图片
    38      * @param outputStream 文件输出流路径
    39      * @param content 二维码携带信息
    40      * @param qrCodeSize 二维码图片大小
    41      * @param imageFormat 二维码的格式
    42      * @throws WriterException
    43      * @throws IOException
    44      */
         public static boolean createQrCode(OutputStream outputStream, String content, int qrCodeSize, String imageFormat) throws WriterException, IOException{  
                 //设置二维码纠错级别MAP
                 Hashtable hintMap = new Hashtable();  
                 hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);  // 矫错级别  
                 QRCodeWriter qrCodeWriter = new QRCodeWriter();  
                 //创建比特矩阵(位矩阵)的QR码编码的字符串  
                 BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap);  
                 // 使BufferedImage勾画QRCode  (matrixWidth 是行二维码像素点)
                 int matrixWidth = byteMatrix.getWidth();  
                 BufferedImage image = new BufferedImage(matrixWidth-200, matrixWidth-200, BufferedImage.TYPE_INT_RGB);  
                 image.createGraphics();  
                 Graphics2D graphics = (Graphics2D) image.getGraphics();  
                graphics.setColor(Color.WHITE);  
                graphics.fillRect(0, 0, matrixWidth, matrixWidth);  
                // 使用比特矩阵画并保存图像
                 graphics.setColor(Color.BLACK);  
                 for (int i = 0; i < matrixWidth; i++){
                   for (int j = 0; j < matrixWidth; j++){
                         if (byteMatrix.get(i, j)){
                             graphics.fillRect(i-100, j-100, 1, 1);  
                         }
                     }
                }
                 return ImageIO.write(image, imageFormat, outputStream);  
         } 

}


action类:

     @Override  
        protected void service(HttpServletRequest requset, HttpServletResponse response)  
                throws ServletException, IOException {  
         HttpSession session = requset.getSession(true);
         User ordinary_user = (User) session.getAttribute("ordinary_user");
         String parameter = requset.getParameter("url");
         System.out.println(parameter);
        // 设置响应的类型格式为图片格式
            response.setContentType("image/jpeg");
            // 禁止图像缓存。
            response.setHeader("Pragma", "no-cache");
            response.setHeader("Cache-Control", "no-cache");
            response.setDateHeader("Expires", 0);
         try {
             QuickMarkUtil.createQrCode(response.getOutputStream(),parameter,900,"JPEG");
        } catch (WriterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        } 

jsp页面

正在努力加载
    


你可能感兴趣的:(日常解决问题系列)