`

JAVA 读取图片储存至本地

    博客分类:
  • JAVA
阅读更多

需求:serlvet经过处理通过报表工具返回一张报表图(柱状图 折线图)。

          现在需要把这个图存储到本地 以便随时查看

 

 

 // 构造URL
URL url = new URL(endStr);
 // 打开URL连接
URLConnection con = url.openConnection();
 // 得到URL的输入流
InputStream input = con.getInputStream();
// 设置数据缓冲
byte[] bs = new byte[1024 * 2];
// 读取到的数据长度
int len;
// 输出的文件流保存图片至本地
OutputStream os = new FileOutputStream(“D:\\a.jpg”);
while ((len = input.read(bs)) != -1) {
os.write(bs, 0, len);
}
os.close();
input.close();

 后来 在开发过程中遇到这样一个问题。

根据需要配置了单点登录和ssl安全证书。这样在生成图片的时候会生成一张浏览不了的。

原因是。在生成图片的时候,每次都是从后台去访问地址的。由于过滤器的原因访问不到。所以对以上代码做了修改

URLConnection con = url.openConnection();//处理以http开头的地址
替换为

HttpsURLConnection con = (HttpsURLConnection) url.openConnection();//处理以https开头的地址

 

添加过滤器

package com.hjkj.listeners;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import edu.yale.its.tp.cas.client.filter.CASFilter;

public class MyCASFilter extends CASFilter {

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain fc) throws IOException, ServletException {
		String requestURI = ((HttpServletRequest)request).getRequestURI();
		String contextPath = ((HttpServletRequest)request).getContextPath();
		System.out.println(requestURI.toString());
		if (requestURI.indexOf("reportServlet") != -1) {
			fc.doFilter(request, response);
			return ;
		}
		try {
			super.doFilter(request, response, fc);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

 

分享到:
评论

相关推荐

    java核心面试技术点

    java 内存模型 ( java memory model ):根据Java Language Specification中的说明, jvm系统中存在一个主内存(Main Memory或Java Heap Memory),Java中所有对象成员变量都储存在主存中,对于所有线程都是共享的。...

    java核心面试

    java 内存模型 ( java memory model ):根据Java Language Specification中的说明, jvm系统中存在一个主内存(Main Memory或Java Heap Memory),Java中所有对象成员变量都储存在主存中,对于所有线程都是共享的。...

    java 面试题 总结

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...

    java毕业设计

    通过网络爬虫工具等,对博客网页内容进行数据抽取,通过将分析的页面进行整理和聚类分析,可以实现对博客文章的分类处理和以文本文件形式储存至本地磁盘中[16]。这样的作用,一方面是可以满足用户对关注的博客文章...

    基于Java+SQLite 实现的个人通讯录APP【100011434】

    作为简化,此次大作业直接使用阿里云 RDS 数据库作为后端,将所有云端读写模块直接封装在 APP 的本地功能类中,云端数据库只负责验证登录、获取公共联系人、即时通讯以及更新检测,其余数据均储存在本地 SQLite ...

    基于JAVA的俄罗斯方块游戏设计与实现【开题报告】.pdf

    用户通过网络获取并在本地运行的应用 程序必须是可依赖的,不会充当病毒或其他恶意操作的传播者而攻击用户本地的资源;同时它还应 该是稳定的,轻易不会产生死机等错误,使得用户乐于使用。 4.支持多线程 多线程是...

    开题报告-基于JAVA的俄罗斯方块游戏设计与实现.doc

    用户通过网络获取并在本地运 行的应用程序必须是可依赖的,不会充当病毒或其他恶意操作的传播者而攻击用户本地 的资源;同时它还应该是稳定的,轻易不会产生死机等错误,使得用户乐于使用。 4.支持多线程 多线程是...

    java后端动态资源匹配导入示例源码

    2、用户前端UI点击下一步操作,调用/general/localModel获取项目本地数据模型,用户连线导入表头列与本地模型的映射关系,调用/general/bindingToPo绑定导入数据与本地模型并存储到redis,返回绑定成功的redis_key和...

    超级有影响力霸气的Java面试题大全文档

     JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...

    java面试常见基础(深层次,高级研发)

    本地方法栈 2 堆 2 方法区 3 2. Jvm堆内存的划分结构和优化 3 2.1. 原理 6 2.1.1. 年轻代 6 2.1.2. 年老代 6 2.1.3. 持久代 7 2.2. 参数说明 8 2.3. 疑问解答 9 2.4. 垃圾回收器选择 10 2.4.1. 串行收集器 10 2.4.2....

    毕业设计-基于ElasticFusion的双目实时重建.zip

    procimg2包:获取zed的双目RGB以及深度图像,保存在本地,与上面包的储存格式不同 cloud2pcd:将.ply格式点云转换成.pcd格式点云 ElasticFusion:三维重建非实时实现(原版ElasticFusion) ElasticFusion-yyy:三...

    微信公众号开发+H5页面语音录入+下载+amr转换为MP3+讯飞语音转文字

    由于使用微信得接口得话,首先要上传到它得服务器上面去(虽然也有本地得文件储存id,但是好像并没有用),这里就涉及到了一个serverid,这个值是存在于微信临时素材库得id,后期要用它来获取录音得文件。...

    串行化和反串行化

    串行化是指存储和获取磁盘文件、内存或其他地方中的对象。...将对象用户网络间传输或者是本地化储存。 反串行化:将字节数组恢复成java对象。 package com.yongjun.io; import java.io.FileInputStream; impor

    xheditor-1.1.14

    说明:当localUrlTest测试为false时,会将图片URL发往当前参数指定的服务器端上传接收程序,抓取成功后将本地URL返回并替换 备注:v1.1.8新添加 readTip:无障碍读屏提示 参数值:字符串(默认为空) 说明:无障碍读屏...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    自动段空间管理 9-14 设置自动段空间管理 9-16 手动数块管理 9-17 块空间的用法 9-18 数据字典视图 9-19 获取储存信息 9-20 小结 9-21 10 管理回滚段 目标 10-2 回滚段管理概述 10-3 回滚段 10-4 回滚段:用途 10-5...

    毕业设计:视频点播系统的设计与实现(源代码)

    流媒体是指传输及播放的流媒体文件,经过特殊的压缩方式分成一个个压缩包,由视频服务器向用户计算机连接、实时地传送,用户机不必等到整个文件全部下载完毕,仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始...

    大数据中数据采集的几种方式.pdf

    再将收集到的数据送到指定的⽬的地…… 1.2通过⽹络采集⼤数据 ⽹络采集是指通过⽹络爬⾍或⽹站公开API等⽅式,从⽹站上获取⼤数据信息,该⽅法可以将⾮结构化数据从⽹页中抽取出来,将其存储为 统⼀的本地数据⽂件...

    EL表达式 (详解)

    表示获取变量的值.区别是[ ]可以显示非词类的变量 2、EL隐含对象 1)与范围有关的隐含对象 与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和 applicationScope; 它们基本上...

    网管教程 从入门到精通软件篇.txt

    Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh...

    计算机毕业实习报告四篇.doc

    计算机毕业实习报告四篇 计算机毕业实习报告 篇2 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道, 它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet应 ...

Global site tag (gtag.js) - Google Analytics