首先我有一个方法'insertimage'用于在数据库中插入图像,然后我使用了一个Servlet类并调用方法'insertimage'进行插入操作。我有一个Part类型的bean类属性'image',我用过bean类的setter方法,并设置我从索引页面获取的图像。请帮助检索图像并在jsp页面中显示它的代码
将图像插入数据库
public boolean insertimage(FoodItems food)
{
boolean result=false;
try
{
InputStream inputstream=null;
image=food.getImage();// i have a bean class property of Part type
if(image !=null)
{
long fileSize=image.getSize();
String fileContent=image.getContentType();
inputstream=image.getInputStream();
}
PreparedStatement pst=con.prepareStatement("insert into AvailableItems values(?)");
pst.setBlob(1,inputstream);
pst.executeUpdate();
result=true;
}
catch(Exception e)
{
System.out.println("error st Available insert"+e);
}
return result;
}
// servlet类
@MultipartConfig(maxFileSize=169999999)
@WebServlet("/InsertFoods")
public class InsertFoods extends HttpServlet
{
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter pw=response.getWriter();
Part image=request.getPart("image");
DBOperations db=new DBOperations();
FoodItems food=new FoodItems();
food.setImage(image);
if(db.insertimage(food))
{
response.sendRedirect("AvailableItems.jsp");
}
else
{
pw.println("not inserted");
}
}
}
假设您有要在其中检索图像的jsp页面。你可以做这样的事情从qazxsw poi中检索图像。
database
在上面的代码中 - > <% //dbconnection
try {
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","");
Statement statement = conn.createStatement() ;
resultSet=statement.executeQuery("select * from tablename") ;
%>
<% while(resultSet.next()){ %>
Image - <img src="ImageProcess?id=<%=resultSet.getString("id")%>" width="20%"/>
<%
}
}catch(Exception e){}
%>
line很重要,在这里你将<img src="ImageProcess?id=<%=resultSet.getString("id")%>" />
传递给servlet以获得特定的parameter
现在,在你的qazxsw poi.e qazxsw poi中,你必须在image
中检索servlet
并传入查询,最后将响应发送回jsp页面。
ImageProcess
此外,这不是完整的代码,根据您的要求进行更改。也不要忘记添加id