Antag, at du har en jsp-side, hvor du vil hente billedet. Du kan gøre noget som dette for at hente ethvert billede fra databasen.
<% // dbconnection prøv { 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("vælg * fra produkt"; %> <% while(resultSet.next()){ %> Billede - " width="20%"/>
Produkt <%=r.getInt (1)%>:<%=r.getString(2)%>
<% } }catch(Exception e){} %>
I Ovenfor kode dette -> " />
linje er vigtig, her sender du parameter
dvs.:id
til servlet for at få et bestemt billede
Nu i din servlet
dvs. ./Serv1
du skal hente id
i doGet
og send forespørgsel ind, send til sidst svaret tilbage til jsp-siden.
Blob-billede =null; byte[] imgData =null; String id=request.getParameter("id");//her får du id int i; ResultSet rs =null; prøv { //indlæse drivere til mysql Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root",""); String sql ="SELECT prodimg FROM product where id=?"; //here send det id i forespørgslen for at få et bestemt billede PreparedStatement ps =con.prepareStatement(sql); ps.setString(1, id); rs =ps.executeQuery(); while (rs.next()) { image =rs.getBlob("image");//henter billede fra databasen imgData =image.getBytes(1,(int)image.length()); //ekstra info om billede } response.setContentType("image/gif");//setting response typeOutputStream o =response.getOutputStream();o.write(imgData);//sende billedet til jsp side o.flush( );o.close(); } catch(Undtagelse e) { e.printStackTrace(); }
Dette er heller ikke komplet kode, foretag ændringer i henhold til dine krav. Glem også at tilføje jar's fil
Håber dette hjælper!