无法通过jsp显示数据库中的所有信息
我的要求是通过jsp将艺术家详细信息和他的图片插入到oracle数据库中,并通过另一个jsp程序检索信息和图片。
artist表有五列,四列是varchar2,第五列是blob类型。
我已成功插入并成功检索但问题只显示图像。 以下是代码。 我被卡住了。 我需要帮助。 请建议我。
PreparedStatement ps=con.prepareStatement("select * from artist"); ResultSet rs=ps.executeQuery(); while(rs.next()){ %> artist fast name: artist middle name: artist last name artist job artist image " height="100" width="100" alt="bye"/>
<% con.close();
从版本6开始,Java SE提供了JAXB,通过它可以将字节转换为base64字符串 。 在这里你也可以将图像byte[]
转换为base 64字符串 ,它可以使用 html标签显示,指定src数据为base 64即
src="data:image/png;base64,
.
修改您的代码如下:
<% PreparedStatement ps=con.prepareStatement("select * from artist"); ResultSet rs=ps.executeQuery(); while(rs.next()){ %> artist fast name: <%=rs.getString(1) %> artist middle name: <%=rs.getString(2) %> artist last name <%=rs.getString(3) %> artist job <%=rs.getString(4) %> artist image <% Blob bl=rs.getBlob(5); byte[] image=bl.getBytes(1, (int)bl.length()); %>
<% } con.close(); %>
这是另一个示例jsp页面,用于获得一个清晰的想法:
<%@page import="java.awt.image.BufferedImage"%> <%@page import="javax.imageio.ImageIO"%> <%@page import="java.io.*"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> Insert title here <% BufferedImage bImage = ImageIO.read(new File("/home/visruth/Desktop/Visruth.jpg"));//give the path of an image ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write( bImage, "jpg", baos ); baos.flush(); byte[] imageInByteArray = baos.toByteArray(); baos.close(); String b64 = javax.xml.bind.DatatypeConverter.printBase64Binary(imageInByteArray); %> As of v6, Java SE provides JAXB
- 在保持JTable默认渲染器的同时对齐JTable单元格中的文本?
- 自然语言处理:用英语查找猥亵?
- 关闭BufferedReader和InputStreamReader
- 加载相对于执行jar文件的文件
- 在Play框架中使用ElementCollection时出现LazyInitializationException
- Java Bean Validation(JSR303)约束涉及几个bean属性之间的关系
- 你如何覆盖Jackson 2.0中的null序列化器?
- 写入XWPFTable单元时,将忽略Java Apache POI换行符
- 是否适合使用AtomicReference.compareAndSet来设置对数据库调用结果的引用?