欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jsp用流从数据库读取图片, 如果有图片就显示,没有则显示默认的图片

程序员文章站 2022-04-12 21:31:34
[size=medium]数据库中存放的头像是byte[] 字节的,在jsp页面上根据用户的id用流从数据库中读取图片。但是如果用户没有头像的话,那么在页面上显示的就是一个图片的小...

[size=medium]数据库中存放的头像是byte[] 字节的,在jsp页面上根据用户的id用流从数据库中读取图片。但是如果用户没有头像的话,那么在页面上显示的就是一个图片的小白框框,难看死了,所以如果用户没有头像的话,就给用户一个默认的头像。
在User类中:
Java代码    
1. private byte img[]; 

在UserAction类中:
Java代码    
1. ClientUser user = new ClientUser();  
2. user=UserService.getUserByUserId(sqlSession,user);              request.getSession().setAttribute("LoginUserImg", user.getImg().length);  
3. //在这里需要用byte[]对象的length属性判断是否存放了图片,如果length为0,那么就没有图片,反之则有。 

在jsp页面中:
Java代码    
1. <c:if test="${LoginUserImg==0 }">  
2.                     <img src="${pageContext.request.contextPath }/images/head.jpg" 
3.                         alt=" " width="100" height="118" align="middle" />  
4.                 </c:if>  
5.                 <c:if test="${LoginUserImg!=0 }">  
6.                     <img  
7.                         src="userImg.jsp?id=${id}" 
8.                         alt="${id}" 
9.                         width="100" height="118" align="middle">  
10.                 </c:if> 

userImg.jsp:
Java代码    
1. <%@page contentType="image/jpeg; charset=utf8"%>  
2. <%@page import="java.io.OutputStream"%>  
3. <%  
4.     String id = request.getParameter("id");   
5.     Boolean ret = true;  
6.     id = id == null ? "" : id.trim();  
7.     userId = userId == null ? "" : userId.trim();  
8.     OutputStream os = response.getOutputStream();  
9.     if (!id.isEmpty()) {  
10.  
11.         ret =UserService.getUserImgById(  
12.                 id, os);   
13.     }    
14.     os.flush();  
15.     os.close();  
16.     os = null;  
17.     response.flushBuffer();//下面这三句是一定要加上的,否则就会报错。  
18.     out.clear();  
19.     out = pageContext.pushBody();  
20. %> 

 

摘自 0609xiaohua