需求: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();
}
}
}
分享到:
相关推荐
在IT领域,数据库中存储图片通常以二进制流(Binary Stream)的形式进行,这是因为二进制流可以高效地处理图像数据,同时节省存储空间。本文将深入探讨如何实现从数据库中的二进制流转换为图片,并将其保存到本地...
### Java 实现上传文件到远程服务器(Spring MVC) 在现代软件开发中,文件上传功能是十分常见的需求之一,尤其在Web应用中。本篇文章将详细介绍如何利用Java编程语言结合Spring MVC框架来实现文件的远程上传功能。...
java 内存模型 ( java memory model ):根据Java Language Specification中的说明, jvm系统中存在一个主内存(Main Memory或Java Heap Memory),Java中所有对象成员变量都储存在主存中,对于所有线程都是共享的。...
1. **读取图像**: 使用图像处理库(如Python的PIL或Java的ImageIO)读取BMP和JPEG文件。 2. **转换为字节流**: 将读取到的图像数据转化为二进制形式,形成字节流。 3. **存储到数据库**: 将字节流插入到BLOB字段,...
在Android应用开发中,数据的储存与读取是不可或缺的一部分,它涉及到用户数据持久化、应用状态保存等关键功能。本教程将详细讲解Android中常见的数据存储方式,并通过提供的源码进行实例解析。 1. ...
4. **日程显示与提醒**:系统应能展示预定的日程,并通过邮件、短信等方式发送提醒通知,确保参会人员及时获取会议信息。这需要集成邮件服务API,如JavaMail API,并可能涉及到定时任务的实现,如Quartz或Spring ...
1. 文件和目录对象:在Java中,`java.io.File`类用于表示文件和目录,我们可以使用它来创建、删除、重命名文件或目录,以及获取它们的信息。 2. 链表和树结构:二级目录结构可以被抽象为一种树形结构,其中每个节点...
通过网络爬虫工具等,对博客网页内容进行数据抽取,通过将分析的页面进行整理和聚类分析,可以实现对博客文章的分类处理和以文本文件形式储存至本地磁盘中[16]。这样的作用,一方面是可以满足用户对关注的博客文章...
作为简化,此次大作业直接使用阿里云 RDS 数据库作为后端,将所有云端读写模块直接封装在 APP 的本地功能类中,云端数据库只负责验证登录、获取公共联系人、即时通讯以及更新检测,其余数据均储存在本地 SQLite ...
通过此库,我们可以方便地在Java应用程序中执行S3操作,如创建、读取、更新和删除对象(即S3中的文件)。要使用AWS SDK,需要在项目中引入对应的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...
2、用户前端UI点击下一步操作,调用/general/localModel获取项目本地数据模型,用户连线导入表头列与本地模型的映射关系,调用/general/bindingToPo绑定导入数据与本地模型并存储到redis,返回绑定成功的redis_key和...
在Android应用开发中,数据储存是一项至关重要的任务,它涉及到应用程序如何持久化用户数据、缓存网络请求结果以及优化性能。本主题将深入探讨“Android数据储存”,特别是针对非图片数据的处理,如将JSON数据序列...
- **查询**:从数据库中查询图片时,获取到`BLOB`字段的内容,将其转换回字节数组,再通过`OutputStream`写入文件或者在内存中处理。 4. **ContentProvider和CursorLoader**:在Android环境中,通常会使用...
在当前的IT环境中,安全和隐私是至关重要的问题,尤其是涉及到云存储时。"加密云盘,文件云储存,存储ftp中且被AES加密"这一技术主题,关注的就是如何在云环境中安全地存储数据,同时确保只有授权用户才能访问。以下...
在Java Web开发中,处理文件上传是一个常见的任务。`HttpServletRequest`是Servlet API中用于接收HTTP请求的核心接口,但在处理文件上传时,它并不能直接提供文件数据。为了获取和存储文件,我们需要利用`...
Android本地存储SharedPreferences详解 Android本地存储SharedPreferences是Android系统提供的一种轻量级的本地存储机制,主要用于保存应用程序中的配置信息、用户设置和其他少量的数据。下面将详细介绍Android...
理解并熟练掌握这一技术对于开发高质量的安卓应用至关重要。本主题将深入探讨安卓文件存储读写的各个方面,包括本地存储的选择、权限管理、文件操作API以及最佳实践。 1. **存储区域选择** 安卓提供了多种存储方式...
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...