我已从数据库中检索到图像的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
标记语句中显示错误。有人可以帮我解决这个问题吗?
答案 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>