在Web开发中图片的读取和展示是一个很常见的功能,实现的过程大致也都一样(包括在各种框架中……)!接下来用流的方式来实现图片的展示

1、 创建Servlet,实现读取,请求方式使用get请求;

 

package com.senvn.servlet;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ShowImageServlet extends HttpServlet { private static final String JPG="image/jpeg;charset=GB2312"; /**
* get方法
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 本地文件路径
String filePath = "D:"+File.separator+"temp"+File.separator+"test1.jpg";
File file = new File(filePath);
// 获取输出流
OutputStream outputStream = response.getOutputStream();
FileInputStream fileInputStream = new FileInputStream(file);
// 读数据
byte[] data = new byte[fileInputStream.available()];
fileInputStream.read(data);
fileInputStream.close();
// 回写
response.setContentType(JPG);
outputStream.write(data);
outputStream.flush();
outputStream.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { }
}

 

2、 配置文件,web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Servlet</display-name>
<servlet>
<description>显示图片Servlet</description>
<display-name>显示图片</display-name>
<servlet-name>ShowImageServlet</servlet-name>
<servlet-class>com.senvn.servlet.ShowImageServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>ShowImageServlet</servlet-name>
<url-pattern>/showImage.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

 

3、 页面展示

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'upload.jsp' starting page</title>
</head> <body>
<img alt="showImage" src="/Servlet/showImage.do">
</body>
</html>

 

4、 直接访问jsp即可

 

路径截图:

Jsp&Servlet实现读取本地图片并展示的更多相关文章

  1. window.open()读取本地图片简单使用总结

    最近做了一个项目,需要读取本地图片出来,问了一些人,感觉在数据库中存取路径比较合适,故做此方法. 后台查询出来的路径

  2. js读取本地图片并显示

    抄自 http://blog.csdn.net/qiulei_21/article/details/52785191 js读取本地图片并显示 第一种方法比较好 版权声明:本文为博主原创文章,未经博主允 ...

  3. pyqt5 多线程+定时器+读取本地图片

    前言 一个程序界面有多个button 按钮时,单击一个按钮,若此按钮对应的信号正在执行,且还未执行完毕: 此时再次单击另外一个按钮,就会出现假死状态. 这个时候我们就需要使用 多线程去解决 多线程+定 ...

  4. FileReader:读取本地图片文件并显示

    最近忙得比狗还惨,导致长时间没能更新文章,真心对不住啊.抽空整理了下关于在页面上读取和显示本地图片的实例文章,本文通过实例讲解如何使用支持FileReader浏览器的用户将能够通过一个file inp ...

  5. UE4 读取本地图片

    参考链接:https://answers.unrealengine.com/questions/235086/texture-2d-shows-wrong-colors-from-jpeg-on-ht ...

  6. Springboot读取本地图片并显示

    在application.yml中配置url访问路径和本地图片路径: 方框1:url中访问路径,这里为:localhost:8080/testspringboot/image/... 方框2:本地图片 ...

  7. phonegap(cordova) 自己定义插件代码篇(四)----读取本地图片

    有时候确实知道本地图片地址,要获取到base64  /** * 获取本地图片,包括路径和压缩后的 base64 */ (function (cordova) { var define = cordov ...

  8. java 通过流的方式读取本地图片并显示在jsp 页面上(类型以jpg、png等结尾的图片)

    Java代码: File filePic = new File(path+"1-ab1.png"); if(filePic.exists()){ FileInputStream i ...

  9. 【Android】WebView读取本地图片

    背景 咱的博客园APP,是通过一个WebView来展示新闻的详情的.新闻必然是图文并茂的,无论是支持离线缓存还是加速新闻的打开速度, 都需要咱们打通本地存储与WebView之间的桥梁. 思路 1:首先 ...

随机推荐

  1. 【转】Visual studio 快捷键大全

    原文:http://book.douban.com/review/4871157/ 可同时参考:http://www.cnblogs.com/TankXiao/p/3164995.html 还记得刚工 ...

  2. day13迭代器与生成器

    三个作业: # 1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码 login_dic = {'alex':False} def ...

  3. Git安装部署

    1.1 最新git源码下载地址 https://github.com/git/git/releases https://www.kernel.org/pub/software/scm/git/ 1.2 ...

  4. POJ 1861 &amp; ZOJ 1542 Network(最小生成树之Krusal)

    题目链接: PKU:http://poj.org/problem?id=1861 ZJU:http://acm.zju.edu.cn/onlinejudge/showProblem.do?proble ...

  5. Android开发:《Gradle Recipes for Android》阅读笔记1.4

    在android studio下可以使用gradle视图运行gradle. gradle任务被分别组织在不同目录下,如android,build,install. 需要执行特定的任务只要双击任务名称. ...

  6. 进程通信(socket)

    “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览 ...

  7. Springboot中jar 重复冲突 导致 静态资源加载问题!

    这个jar 其实在common 中也是存在的  ,当时没注意看,就导入进来了,然后  css js 等一些静态资源全部不能加载!具体原因我没去深挖!后面找个时间深挖下,先填坑!

  8. mailing list的原理

    1 发往mailing list邮箱的邮件会被所有订阅了该邮箱的人收到 说白了,就是一种邮件群发机制,为了简化群发,不是将所有的收件人放到收件人列表中,而是发往总的邮箱即可. 2 要向该mailing ...

  9. 好的commit应该长啥样 https://github.com/torvalds/linux/pull/17#issuecomment-5654674

    Git commits历史是如何做到如此清爽的? - 知乎 https://www.zhihu.com/question/61283395/answer/186122300 尤雨溪 前端开发.Java ...

  10. Django的models方法返回值异常,待解决

    class BookInfo(models.Model): #创建书本信息类,继承models.Model booktitle=models.CharField(max_length=20) book ...