springmvc+mybatis 处理图片(二):显示图片

数据库及配置文件等参考:springmvc+mybatis 处理图片(一):上传图片
思路:把图片二进制信息写入到HttpServletResponse 的outputStream输出流中来显示图片。一个Controller来返回页面,另一个Controller来显示图片
1. NewsController.java(显示除了图片之外的新闻信息)

//获取所有新闻
@RequestMapping(value="/htNews")
public String htNews(Model model) {
    // 获得所有news集合
    List<News> news_list = fdyfzxService.getAllNews();
    // 将news集合添加到model当中
    model.addAttribute("news_list", news_list);//htNews.jsp中使用${requestScope.news_list }获取news列表
    // 跳转到main页面
    return "htNews";
}

2. NewsController.java(显示图片)

/**获取新闻的图片
 * @Param id 新闻id
 */
 @RequestMapping(value="newsPic")
 public void newsPic(String id, HttpServletResponse response, Model model){ 
    News news = fdyfzxService.findNewsById(Integer.parseInt(id));
    byte[] newsPic = news.getNewsPic();
    try {  
        OutputStream outputStream=response.getOutputStream();  
        InputStream in=new ByteArrayInputStream(newsPic);
            
        int len = 0;
        byte[] buffer = new byte[1024];
        while((len=in.read(buffer, 0, 1024)) != -1){
            outputStream.write(buffer, 0, len);
        }
        outputStream.close();
    } catch (Exception e) {  
        e.printStackTrace();  
    } 
 }

3. htNews.jsp(显示新闻信息)

<img src="${ctx }/newsPic?id=${news.newsID }" height="100" width="100"/>
<!--其他代码省略-->

效果如图

参考:https://blog.csdn.net/cwzhsi/article/details/43417357

原文地址:https://www.cnblogs.com/zeroingToOne/p/8824422.html