我有一个代码来显示员工图表。
数据(姓名、电话、照片等)存储在SQLServer中并通过JSP显示。
显示数据正常,但图像 .jpg(存储在 IMAGE=BLOB 列中)除外。
顺便说一句,我已经显示了图像(请参见下面的代码),但我不知道如何将其放在 .css 中定义的区域中(也请参见下面的代码),因为图像通过了resultSet 被加载到浏览器的整个页面中。
有谁知道如何“框定”图像?
<%
Connection con = FactoryConnection_SQL_SERVER.getConnection("empCHART");
Statement stSuper = con.createStatement();
Statement stSetor = con.createStatement();
Blob image = null;
byte[] imgData = null;
ResultSet rsSuper = stSuper.executeQuery("SELECT * FROM funChart WHERE dept = 'myDept'");
if (rsSuper.next()) {
image = rsSuper.getBlob(12);
imgData = image.getBytes(1, (int) image.length());
response.setContentType("image/gif");
OutputStream o = response.getOutputStream();
//o.write(imgData); // even here we got the same as below.
//o.flush();
//o.close();
--[...]
<table style="margin: 0px; margin-top: 15px;">
<tr>
<td id="photo">
<img title="<%=rsSuper.getString("empName").trim()%>" src="<%= o.wite(imageData); o.flush(); o.close(); %>" />
</td>
</td>
<td id="empData">
<h3><%=rsSuper.getString("empName")%></h3>
<p><%=rsSuper.getString("Position")%></p>
<p>Id:<br/><%=rsSuper.getString("id")%></p>
<p>Phone:<br/><%=rsSuper.getString("Phone")%></p>
<p>E-Mail:<br/><%=rsSuper.getString("Email")%></p>
</td>
</table>
这是应该构成图像的片段:
#photo
{
padding: 0px;
vertical-align: middle;
text-align: center;
width: 170px;
height: 220px;
}
提前致谢 !
你在这里犯了一些根本性的错误。这<img src>
必须指向 URL,不包含图像的二进制内容。 JSP 页面本身的内容类型不应设置为image/gif
。应保留默认值text/html
。网络服务器并不应该像您所期望的那样在 HTML 结果中包含具体图像。网络浏览器根据在中找到的 URL 单独下载图像src
属性,然后相应地呈现它们。
最简单的方法是创建一个单独的 servlet,将图像从数据库流式传输到响应正文。您可以通过请求参数或路径信息来唯一标识图像。这是一个使用请求参数的示例:
<img src="imageServlet?id=<%=rsSuper.getString("id")%>" />
The doGet()
那么方法应该基本上执行这项工作:
String id = request.getParameter("id");
// ...
InputStream input = resultSet.getBinaryStream("imageColumnName");
OutputStream output = response.getOutputStream();
response.setContentType("image/gif");
// Now write input to output the usual way.
无关针对具体问题,使用小脚本十年来官方强烈反对这种方式。也许您正在阅读完全过时的书籍/教程,或者正在维护一个古老的 JSP Web 应用程序。对于一些见解,另请参阅以下问题的答案以获得一些提示:
- 如何避免JSP文件中出现Java代码? https://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files
- 使用 MVC 和 DAO 模式在 JSP 页面中的 HTML 中显示 JDBC 结果集 https://stackoverflow.com/questions/5003142/jsp-using-mvc-and-jdbc
- 如何在 JSP 页面中检索并显示数据库中的图像? https://stackoverflow.com/questions/2340406/how-to-retrieve-and-display-images-from-a-database-in-a-jsp-page
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)