java - 是否可以使用 java 代码从 sql server 管理中检索图像并在 jsp 页面中显示
问题描述
Hai iam struct 在 jsp 页面中显示图像...我将图像插入到 sql server management studio 中,图像数据类型是图像...我编写插入代码来插入图像,每当我从数据库调用图像时,它就是未在 jsp 页面中显示并出现错误是
java.lang.NumberFormatException:对于输入字符串:java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 处的“7069632E6A7067”
jsp查看页面代码
<table id="basicTable" class="table table-striped table-bordered responsive">
<thead class="">
<tr>
<th>Id</th>
<th>Name</th>
<th>Address</th>
<th>Phone</th>
<th>Profile Picture</th>
</tr>
</thead>
<%
int s=0;
String s2="",s3="",s4="",s5="";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl;
connectionUrl = "jdbc:sqlserver://XXXX\\SQLEXPRESS14;databaseName=Student;user=XX;password=XXXX";
Connection con=DriverManager.getConnection(connectionUrl);
// Statement st = con.createStatement();
PreparedStatement pstmt=null;
pstmt=con.prepareStatement("select * from login_users "); //sql select query
ResultSet rs1=pstmt.executeQuery(); //execute query and set in ResultSet object "rs"
%>
<tbody>
<%
while(rs1.next())
{
s=rs1.getInt(1);
s2=rs1.getString(2);
s3=rs1.getString(3);
s4=rs1.getString(4);
s5=rs1.getString(5);
%>
<tr>
<td><%=s%> </td>
<td><%=s2%></td>
<td><%=s3%></td>
<td><%=s4%></td>
<td><div align="center"><input name="image" type="image" src="print_image.jsp?imgid=<%=s5%>" width="100" height="100" alt="Submit"></div></td>
<%
}
%>
</tr>
</tbody>
</table>
print_image.jsp 代码是
int id = Integer.parseInt(request.getParameter("imgid"));
try
{
Connection con=DriverManager.getConnection("jdbc:sqlserver://xxxx\\SQLEXPRESS14;databaseName=Student;user=xx;password=XXXX");
Statement st = con.createStatement();
String strQuery = "select image from login_users where id='"+id+"'" ;
ResultSet rs = st.executeQuery(strQuery);
String imgLen="";
if(rs.next())
{
imgLen = rs.getString(1);
}
rs = st.executeQuery(strQuery);
if(rs.next())
{
int len = imgLen.length();
byte [] rb = new byte[len];
InputStream readImg = rs.getBinaryStream(1);
int index=readImg.read(rb, 0, len);
//System.out.println("index"+index);
st.close();
response.reset();
//response.setContentType("image/jpg");
response.getOutputStream().write(rb,0,len);
response.getOutputStream().flush();
}
}
catch (Exception e)
{
e.printStackTrace();
}
%>
解决方案
推荐阅读
- android - Dagger-Hilt @AndroidEntryPoint 不适用于 BottomSheetDialogFragment()
- java - 使用 Kotlin 从联系人列表中获取联系人信息
- node.js - 无法在 Docker 中连接到 mongo
- c++ - 在 C++ 中使用 Code::Blocks 中的 boost/date_time/posix_time/posix_time.hpp 标头
- shell - 在linux命令行的目录中查找最大的文件
- c++ - 如何检查一个值是否字面上为空
- amazon-web-services - ECS 计划任务始终只有 1 个任务
- amazon-web-services - dynamoDB 流 KCL 消费者,有 1 个工作人员和多个分片,需要更长的时间来挑选新的流记录
- php - Laravel Scout - 来自一个模型的多个可搜索数组
- sum - NA_integer 作为总和的结果