如何将数据库中检索到的值作为jsp中图像的url传递?

时间:2016-06-14 06:10:11

标签: image jsp

我已从数据库中检索到图像的url。现在,我想使用此URL在JSP页面上显示图像。

我正在使用此代码检索网址的值 -

<% 
try{
        Class.forName("com.mysql.jdbc.Driver");
        try(Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/asad","root","1234");){
            //database connection

            System.out.println("driver registered");
                        Statement s=conn.createStatement();  
        String searchby=request.getParameter("searchby");
        String param=request.getParameter("name");
        String q="";
        System.out.println("before pstmt");
           q="select * from asad.book where genre"+"=?";
         PreparedStatement pstmt=(PreparedStatement)conn.prepareStatement(q);
            pstmt.setString(1,param);
            System.out.println("after pstmt");
        System.out.println("param is "+param+"  searchby is "+searchby);
        ResultSet rs =(ResultSet) pstmt.executeQuery();
//      ResultSetMetaData rsmd=(ResultSetMetaData) rs.getMetaData();
        while(rs.next())
        {
            System.out.println(rs.getString(1));

            String url=rs.getString(3);
            %>

要做到这一点,我写了 -

<img src="<% url %>" style=width:350px;height:350px>

Eclipse在上面的img标记语句中显示错误。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

<% ...%>用于jsp中的代码,而在这里你需要一个值,所以你应该写<img src="<%= url %>" style=width:350px;height:350px>

但无论如何,在scriptlet中拥有如此多的java代码现在被认为是不好的做法。如果要使用最佳实践,则应将其移动到servlet中(更容易在像Eclipse这样的IDE中编写和测试),将相关值存储在请求属性中,并且只在JSP中执行显示部分。如果您这样做,并将网址存储在"url"请求属性中,该行将变为

<img src="${url}" style=width:350px;height:350px>