所需jar包:

 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.1.0</version></dependency>
/**** 实现说明:把服务器上的产品详情页的链接地址(含有ID)生成二维码,微信扫码,跳转到指定页* 需要jar:zxing-code-3.1.0.jar**/
public class GenerateCode {private static final int BLACK = 0xFF000000;private static final int WHITE = 0xFFFFFFFF;public static void main(String[] args) {try {boolean flag = generateCode("518");if (flag) {System.out.println("成功生成二维码");}} catch (WriterException | IOException e) {System.err.println("生成二维码失败");e.printStackTrace();}}public static boolean generateCode(String productId) throws WriterException, IOException {// 这里是URL,扫描之后就跳转到这个界面String text = "https://www.baidu.com/?uudi=" + productId;String path = "E:/"; // 图片生成的位置int width = 400;int height = 400;// 二维码图片格式String format = "jpg";// 设置编码,防止中文乱码Hashtable<EncodeHintType, Object> ht = new Hashtable<EncodeHintType, Object>();ht.put(EncodeHintType.CHARACTER_SET, "UTF-8");// 设置二维码参数(编码内容,编码类型,图片宽度,图片高度,格式)BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, ht);// 生成二维码(定义二维码输出服务器路径)File outputFile = new File(path);if (!outputFile.exists()) {// 创建文件夹outputFile.mkdir();}int b_width = bitMatrix.getWidth();int b_height = bitMatrix.getHeight();// 建立图像缓冲器BufferedImage image = new BufferedImage(b_width, b_height, BufferedImage.TYPE_3BYTE_BGR);for (int x = 0; x < b_width; x++) {for (int y = 0; y < b_height; y++) {image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE);}}// 生成二维码ImageIO.write(image, format, new File(path + "/code." + format));// 二维码的名称// code.jpgreturn true;}
}

通过接口下载:

@Controller
public class GenerateCode {private static final int BLACK = 0xFF000000;private static final int WHITE = 0xFFFFFFFF;@GetMapping("/download/{code}")public void downloadCode(@PathVariable String code, HttpServletResponse response) throws WriterException, IOException {// 这里是URL,扫描之后就跳转到这个界面String text = "https://www.baidu.com/?intited=" + code;int width = 400;int height = 400;// 二维码图片格式String format = "jpg";// 设置编码,防止中文乱码Hashtable<EncodeHintType, Object> ht = new Hashtable<EncodeHintType, Object>();ht.put(EncodeHintType.CHARACTER_SET, "UTF-8");// 设置二维码参数(编码内容,编码类型,图片宽度,图片高度,格式)BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, ht);int b_width = bitMatrix.getWidth();int b_height = bitMatrix.getHeight();// 建立图像缓冲器BufferedImage image = new BufferedImage(b_width, b_height, BufferedImage.TYPE_3BYTE_BGR);for (int x = 0; x < b_width; x++) {for (int y = 0; y < b_height; y++) {image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE);}}String fileName= new StringBuffer().append(code).append(".").append(format).toString();response.setHeader("Content-Type","application/octet-stream");response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));response.setContentType("application/octet-stream; charset=utf-8");// 生成二维码ServletOutputStream fileOutputStream = response.getOutputStream();ImageIO.write(image, format, fileOutputStream);fileOutputStream.flush();fileOutputStream.close();}}

或者这样也行

@Controller
public class GenerateCode {private static final int BLACK = 0xFF000000;private static final int WHITE = 0xFFFFFFFF;@GetMapping("/download/{code}")public void downloadCode(@PathVariable String code, HttpServletRequest request, HttpServletResponse response) throws WriterException, IOException {// 这里是URL,扫描之后就跳转到这个界面String text = "https://www.baidu.com/?intited=" + code;int width = 400;int height = 400;// 二维码图片格式String format = "jpg";// 设置编码,防止中文乱码Hashtable<EncodeHintType, Object> ht = new Hashtable<EncodeHintType, Object>();ht.put(EncodeHintType.CHARACTER_SET, "UTF-8");// 设置二维码参数(编码内容,编码类型,图片宽度,图片高度,格式)BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, ht);int b_width = bitMatrix.getWidth();int b_height = bitMatrix.getHeight();// 建立图像缓冲器BufferedImage image = new BufferedImage(b_width, b_height, BufferedImage.TYPE_3BYTE_BGR);for (int x = 0; x < b_width; x++) {for (int y = 0; y < b_height; y++) {image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE);}}String fileName= new StringBuffer().append(code).append(".").append(format).toString();// 设置下载文件的mineType,告诉浏览器下载文件类型String mineType = request.getServletContext().getMimeType(fileName);System.out.println(mineType);response.setContentType(mineType);response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));// 生成二维码ServletOutputStream fileOutputStream = response.getOutputStream();ImageIO.write(image, format, fileOutputStream);fileOutputStream.flush();fileOutputStream.close();}}

参考:https://my.oschina.net/ydsakyclguozi/blog/887368

JAVA生成跳转指定页面并且附带参数的二维码相关推荐

  1. java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载

    java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成.解析.下载 自己用java搭建一个属于自己APP二维码合成网站.我的思路是这样的: 1.用户在前台表单提交APP的IOS和Andro ...

  2. C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码

    本文介绍在 C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码.网上文章大多只是简单介绍内置参数的设置,根据我的使用目的,增加了自定义目标二维码图片尺寸和白边 ...

  3. 雨听|生成指定路径的微信小程序二维码

    生成指定路径的微信小程序二维码 步骤一:登录微信公众平台 步骤二:右上方选择"工具",再选择"生成小程序码" 步骤三:选择需要生成二维码的小程序 步骤四:填写页 ...

  4. 微信公众号怎么生成带参数的二维码?

    每位运营过微信公众平台的野生小编都知道,微信提供给开发者的文档是很高深的,最近为了弄个带参数的二维码,同样技术小白的小编也死了不少脑细胞了,然而我终于知道官方生成带参数的二维码的方法了. 1.注意事项 ...

  5. 微信公众号开发之生成并扫描带参数的二维码(无需改动)

    首先把参考的博文罗列出来: 1.微信公众号开发之生成并扫描带参数的二维码: https://blog.csdn.net/qq_23543983/article/details/80228558 2.由 ...

  6. 生成带参数的二维码接口实例

    1.生成带参数的二维码接口介绍 为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送. 目前有2种类型 ...

  7. 如何生成带统计参数的二维码渠道监测

    随着互联网技术的发展,二维码成为App流量分发的主流形式,我们能在各种不同的场合看到扫码入口.这种形式的App推广相较于链接.应用商店而言更加简单灵活,既能打通线上线下的信息通道,也可以植入到图文内容 ...

  8. 微信公众号之生成带参数的二维码

    生成带参数的二维码 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送.目前有2 ...

  9. uniapp之小程序端生成分享海报(带自定义参数的二维码)

    内容需求: 小程序端生成一个海报,海报内容包括当前授权账号的头像,当前授权账号的邀请码,一张特定图片,分享页面的带对应参数的小程序二维码:生成的海报需要保存到本地 功能方法: 1.前端用canvas绘 ...

最新文章

  1. Invalid bound statement (not found): com.xsw.dao.CategoryDao.getCategoryById] with root cause
  2. 学习篇之软件测试——初
  3. [JQuery] jQuery选择器ID、CLASS、标签获取对象值、属性、设置css样式
  4. 有关 alter tablespace begin backup
  5. java 远程查看电脑磁盘,请问你如何在Java中监视计算机的CPU、内存和磁盘使用情况?...
  6. 毫无疑问的是.NET 在信创常用软件适配清单之中
  7. 自然语言处理的一些链接
  8. springmvc是什么_SpringBoot与SpringMVC的区别是什么?
  9. ai人工智能_人工智能能力问答中的人工智能不确定性
  10. cascade=CascadeType.ALL的深坑
  11. “五一”档总票房破13亿 《你的婚礼》高居榜首
  12. 23.docker export
  13. 开心网(kaixin001)上的X世界小游戏
  14. 常见几个排序源码及二分查找源码
  15. 【Uniapp框架】快速开发自己一款APP应用,如何将Uniapp项目快速打包成APP应用
  16. caffe生成lmdb数据集的脚本
  17. 人工蜂群算法c语言程序,基于人工蜂群算法的炼钢连铸生产调度方法研究
  18. spring factory-method和factory-bean 使用
  19. 解决win10系统桌面应用图标显示不出来的问题
  20. 《惢客创业日记》2021.06.21-22(周一)创业者融资成本有多高?

热门文章

  1. 按PEP8风格自动排版Python代码
  2. 虚拟机安装报错-启动失败-Intel VT-x 处于禁用状态
  3. 斐波那契数列的四种实现方式(C语言)
  4. 修改http默认的80端口为其它端口
  5. SAP MM 物料扩充MRP范围
  6. OSDI2020:Delos中的虚拟共识
  7. Pycharm踩坑(一) FileNotFoundError: [Errno 2] No such file or directory: ‘../data/users.txt‘ 目录结构
  8. 09、IO流—File类与IO流
  9. hadoop 3.x常用端口
  10. Camera | 3.瑞芯微平台MIPI摄像头常用调试命令