无法显示存储在数据库

时间:2017-03-10 14:45:21

标签: java css image jsp servlets

enter image description here

    <%@page import="java.sql.*"%>
<%@page import="com.binod.db.DBConnection"%>
<jsp:include page="header.jsp"/>
<center>

<div class="content">
<table border="1" cellpadding="5" class="full">
<tr>
<td>Cat_id</td>
<td>cat_name</td>
<td>
Cat_Path
</td>
</tr>

<%
ResultSet rs;
DBConnection db=new DBConnection();
db.open();
String query="Select * from `category`";
PreparedStatement preparedStatement =db.getPreparedStatement(query);
rs=preparedStatement.executeQuery();
while(rs.next()){
    int cat_id=rs.getInt("cat_id");
    String cat_name=rs.getString("cat_name");
    String cat_path=rs.getString("cat_image");
    System.out.println(cat_path);

    %>
    <tr>
    <td><%=cat_id %></td>
    <td> <%= cat_name %></td>
    <td class="Images"><img src="<%= cat_path%>" alt="Image not found"/></td>

    </tr>
    <%
}

%>


</table>

</div>

</center>

<jsp:include page="footer.jsp"/>

我的控制台输出:存储在数据库中的图像路径

C:\用户\ Binod \工作空间\店\图片\类别\ bbb.jpg C:\用户\ Binod \工作区\店\图片\目录\ bbb.jpg C:\ Users \ Binod \ workspace \ shop \ Pictures \ Category \ Screenshot(5).png C:\ Users \ Binod \ workspace \ shop \ Pictures \ Category \ Screenshot(5).png C:\ Users \ Binod \ workspace \ shop \ Pictures \ Category \ Screenshot(5).png C:\ Users \ Binod \ workspace \ shop \ Pictures \ Category \ Screenshot(5).png C:\ Users \ Binod \ workspace \ shop \ Pictures \ Category \ Screenshot(5).png C:\ Users \ Binod \ workspace \ shop \ Pictures \ Category \ Screenshot(6).png

2 个答案:

答案 0 :(得分:0)

也许你应该避免使用图像或文件的物理路径。

只需将资源(例如图像,文件)放在您正在使用的项目中。

并保存数据库中图像的相对路径。

答案 1 :(得分:0)

1。您的JSP无法显示图片的原因是因为&#34; \&#34;。单个&#34; \&#34;是一个转义序列,它不被读作文件分隔符。为了克服它,替换&#34; \&#34;用&#34; \\&#34;。

2。由于某些安全问题,Chrome无法读取本地文件。Read here

为了克服这个问题,你可以做的是首先用new路径替换original_path,它将具有&#34; \\&#34;而不是&#34; \&#34;。然后创建一个指向另一个jsp / servlet的链接以将new_path转换为original_path,然后显示它。 像这样:

String original_path="G:\images";
String new_path=original_path.replace("\","\\");

让我们假设您的2nd.jsp是将显示图像的文件 在主jsp文件中创建一个lionk

<a href="2nd.jsp?new_path="+new_path+"/>image</a>

从第二个jsp获取参数,然后显示文件。