Java 在jsp页面上显示blob
好的,所以我试图在jsp页面上显示一个带有用户名和姓氏的图像,但我只得到图像,而不是名字和姓氏…那么这里有什么问题呢。。。感谢您的帮助:)Java 在jsp页面上显示blob,java,jsp,servlets,Java,Jsp,Servlets,好的,所以我试图在jsp页面上显示一个带有用户名和姓氏的图像,但我只得到图像,而不是名字和姓氏…那么这里有什么问题呢。。。感谢您的帮助:) 在此处插入标题 从数据库获取数据 名字 姓 照片 形象 您的代码包括在写完图片后以及以后对o.close()的调用。这将关闭响应输出流,不再发送任何内容。不要这样做-让web容器负责关闭输出流 这应该可以解释为什么不应该显示名字和姓氏:响应流已关闭 另外,我不认为响应内容类型应该是“image/jpg”,特别是考虑到HTML元标记如何表示内容是“text
在此处插入标题
从数据库获取数据
名字
姓
照片
形象
您的代码包括在写完图片后以及以后对o.close()的调用。这将关闭响应输出流,不再发送任何内容。不要这样做-让web容器负责关闭输出流
这应该可以解释为什么不应该显示名字和姓氏:响应流已关闭
另外,我不认为响应内容类型应该是“image/jpg”,特别是考虑到HTML元标记如何表示内容是“text/HTML”。我认为它们应该是相同的——“text/html”
最后,也许是最重要的JSP非常古老。您可能想考虑使用FACELET(JavaServer FACTS技术)。@ TeeWoKo,我尝试过这种方法,但甚至不能访问servlet……(@user2137186-你不能像那样将图像内容直接转储到页面中。你在创建servlet时遇到了什么问题?也许你应该再试一次,然后在遇到问题时发布一个SO问题(当然,经过适当的研究).好的,我这样传递id,然后在输入流中获取数据,然后做什么?事实上,某些东西是旧的并不一定使它过时。此外,即使它是过时的,建议OP切换技术也不可能帮助他完成当前的任务/项目。我的回答包括一个建议,带有以下表达式“可能要考虑"。这并不是居高临下或消极的,事实上,你会在这个网站上多次回复JSP问题时发现同样的情绪。@Ahmed你有没有在JSP页面上显示过一个斑点图像?亲爱的@user2137186,你可以在这个网站上找到几个已经写过的关于这个问题的答案,包括一个有b甚至连这个问题都联系到了……然而,我试图帮助您解决“无法显示firstName和lastName”的问题——这是响应流正在关闭。
<%@ page language="java" contentType="text/html; charset=windows-1256"
pageEncoding="windows-1256"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>Insert title here</title>
</head>
<body>
<H1>Fetching Data From a Database</H1>
<%
Blob image = null;
byte[] imgData = null;
Connection con;
String url="jdbc:mysql://localhost:3306/image";
String uName="root";
String pwd="root";
Class.forName("com.mysql.jdbc.Driver").newInstance();
con=DriverManager.getConnection(url,uName,pwd);
String sql="Select * from image ";
PreparedStatement stmt=con.prepareStatement(sql);
ResultSet resultset=stmt.executeQuery();
while(resultset.next())
{
Blob bl = resultset.getBlob("image");
byte[] pict = bl.getBytes(1,(int)bl.length());
response.setContentType("image/jpg");
OutputStream o = response.getOutputStream();
%>
<TABLE BORDER="1">
<TR>
<TH>First Name</TH>
<TH>Last Name</TH>
<TH>picture</TH>
</TR>
<TR>
<td>Image</td><td><%o.write(pict);%></td>
<%o.flush();
o.close();%>
<TD> <%= resultset.getString(2) %> </TD>
<TD><%= resultset.getString(3) %></TD>
</TR>
</TABLE>
<BR>
<%
o.flush();
o.close();
}
%>
</body>
</html>