转载自:http://blog.csdn.net/javadwr/article/details/9065989
项目中的图片资源一般建议存储到独立的静态服务器中。为了不让图片、文档等文件资源管理零碎,不能被有心人事删除,最好选择存储oracle的大字段blob类型。这里对于java怎么存储、获取blob类型不多介绍,重点讲解jsp页面img标签显示blob字段。
首先需要通过java代码获取到oracle中的blob字段,对应java类型是java.sql.Blob。
配置web.xml配置一个获取图片的servlet:源码如下。
- <servlet>
- <servlet-name>ImageServlet</servlet-name>
- <servlet-class>ImagerServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>ImageServlet</servlet-name>
- <url-pattern>*.img</url-pattern>
- </servlet-mapping>
JSP页面获取标签:
- <IMG SRC="/show.img" />
java类Servlet,通过获取到blob字节,通过“image/jpeg”类型返回图片。
- import java.io.IOException;
- import java.io.InputStream;
- import java.sql.Blob;
- import javax.servlet.ServletException;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class ImagerServlet extends HttpServlet {
- private static final long serialVersionUID = -5665985198720593386L;
- public ImagerServlet() {
- super();
- }
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doPost(request,response);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- InputStream in = null;
- ServletOutputStream oStream = null;
- try {
- response.reset();
- response.setContentType("image/jpeg"); //设置repose返回类型,这个很重要
- request.setCharacterEncoding("gbk");
- oStream =response.getOutputStream();
- Blob blob = null;//通过java获取到oracle数据库中的blob字段
- in = blob.getBinaryStream();
- int blobsize = (int) blob.length();//获取blob长度
- byte[] blobbytes = new byte[blobsize];
- int bytesRead = 0;
- while ((bytesRead = in.read(blobbytes)) != -1) {//循环写入outputstream
- oStream.write(blobbytes, 0, bytesRead);
- }
- } catch (IOException e) {
- throw e;
- } catch (Exception e) {
- } finally{
- if (in != null) {
- in.close();
- }
- if (oStream != null) {
- oStream.close();
- }
- }
- }
- }
相关推荐
通过以上步骤,我们成功地实现了在Java程序中读取Oracle数据库BLOB字段中存储的图片,并在前端页面上显示出来。此方法不仅适用于图片,还可以扩展到其他类型的二进制数据,如音频、视频等文件。这对于构建多媒体应用...
该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到JAVA类中显示图形。在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 知识点1:JSP技术的应用 * JSP(Java Server ...
使用 JAVA 读取 ORACLE BLOB 字段实现上传下载 BLOB(Binary Large Objects)是一种二进制大对象类型,常用于存储大对象,例如图形、声音等。我们可以将 BLOB 区分为三种形式:声像数据、二进制数据和大文本数据。...
### 基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案 #### 概述 本文介绍了一种利用JSP技术访问Oracle数据库中BLOB字段存储的坐标点,并将其转换为图形显示的方法。这种方法充分利用了JSP与Java的集成优势,...
通过以上步骤,我们实现了使用JSP向Oracle中的BLOB字段上传附件的功能。这个过程涉及到Web表单提交、文件上传处理、JDBC数据库操作、事务管理和错误处理等多个知识点。在实际开发中,可以进一步封装为服务层方法,以...
介绍了JSP处理图形的一种方法,该方法使用JSP访问ORACLE数据库BLOB字段,BLOB字段存储的是排样后的若干图形的坐标点,然后把坐标传递到JAVA中显示图形,在图形正中还显示了编号,充分显示了JSP结合JAVA应用的优势。
当用户上传图片时,JSP页面可以接收文件,将其转换为Blob对象,然后存储到Oracle数据库的Blob字段中。在查询时,可以从数据库检索Blob数据,转换回图片格式,并在页面上显示。 图片的上传与显示通常涉及前端和后端...
在JSP页面中,你可以使用以下代码将图片显示出来: ```html <img name="pic" src="<%=basePath+"servlet/DownloadAsStream"%>"/> ``` 这里的`basePath`是应用的基础路径,`servlet/DownloadAsStream`是处理Blob...
"jsp+servlet+oracle上传图片到数据库(非路径)"这个主题涉及的是一个常见的Web应用开发技术,它利用JavaServer Pages (JSP)、Servlet以及Oracle数据库来实现图片的上传和展示,而不是仅仅存储图片的路径。...
JDBC(Java Database Connectivity)是Java连接数据库的标准API,使用PreparedStatement对象的`setBlob()`方法,可以将文件流写入到BLOB字段中。 当用户请求下载文件时,JSP页面会根据数据库中的文件ID查询对应的...
然后,通过 JSP往这张表里插入一条记录,并获取显示它。 插入操作需要注意以下几点: 1. COLB 类型的数据不能直接插入,需要先通过 empty_clob() 方法给它分配一个 locator(同理,BLOB 的用 empty_blob() 函数...
在处理“上传附件”功能时,这个接口可能会有一个插入操作,使用 "empty_blob()" 创建一个新的BLOB字段,然后将上传的文件内容存储到这个字段中。 接着是 `ContractTopService.java`。这是一个服务层的实现,它会...
4. Struts2集成:在Struts2的Action类中调用Hibernate API来实现业务逻辑,并通过JSP页面展示结果。 ### 结论 通过Struts2与Hibernate框架的结合,开发者可以构建稳定高效的Web应用,特别是在涉及到需要存储和展示...
2. JDBC操作:使用Java的JDBC驱动程序,将图片数据插入到Oracle数据库的BLOB字段中。涉及SQL语句执行,以及PreparedStatement的setBinaryStream方法或setBlob方法。 三、图片从数据库取出 1. 查询图片:通过SQL查询...
描述中提到图像可以保存到数据库中,这可能涉及到BLOB(Binary Large Object)类型的字段来存储图像数据。数据库如MySQL、Oracle或SQL Server都支持BLOB类型,用于存储非结构化的二进制数据。为了提高效率,通常会...
5. 配置数据库:创建相应的表,包含存储图片路径或元数据的字段,可能需要使用 BLOB 或 CLOB 类型来存储大文件。 6. 显示图片:在需要显示图片的页面,根据数据库中存储的路径加载图片。 注意,文件上传时要确保...
在图片上传场景中,JSP页面通常作为用户界面,收集用户上传的图片,然后通过表单提交到Servlet进行处理。 1. **JSP代码**: JSP页面中,我们需要一个表单来让用户选择要上传的图片。表单需要设置`enctype=...
接下来,我们需要使用JDBC连接Oracle数据库,并将上传的图片文件转换为字节数组,然后存入BLOB字段。以下是一个简单的示例: ```java public String execute() { try (InputStream is = image.getInputStream(); ...
在实际应用中,如果需要持久化图片数据,可以将图片数据存储到数据库的BLOB字段,Oracle数据库支持这种操作。 7. **MyEclipse集成** MyEclipse作为强大的Java EE开发工具,提供了创建、调试JSP和Servlet的便利。...
2. 使用Oracle存储大文件,可能涉及BLOB类型字段的使用。 3. 用户积分系统,可能涉及到数据库中的积分计算规则和用户行为记录。 4. 分类管理和搜索功能,需要设计合理的分类结构和高效的查询算法。 第7章 网上订票...