Servlet实现图片读取显示

1.导入jar包:commons-io-1.4.jar

2.index.jsp:

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9     <head>
10         <base href="<%=basePath%>">
11
12         <title>文件上传</title>
13         <meta http-equiv="pragma" content="no-cache">
14         <meta http-equiv="cache-control" content="no-cache">
15         <meta http-equiv="expires" content="0">
16         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
17         <meta http-equiv="description" content="This is my page">
18         <!--
19     <link rel="stylesheet" type="text/css" href="styles.css">
20     -->
21     </head>
22
23     <body>
24             <div><a href="${pageContext.request.contextPath}/showPic.jsp">查看图片</a></div>
25     </body>
26 </html>

3.showPic.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9     <head>
10         <base href="<%=basePath%>">
11
12         <title>文件上传</title>
13         <meta http-equiv="pragma" content="no-cache">
14         <meta http-equiv="cache-control" content="no-cache">
15         <meta http-equiv="expires" content="0">
16         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
17         <meta http-equiv="description" content="This is my page">
18         <!--
19     <link rel="stylesheet" type="text/css" href="styles.css">
20     -->
21     </head>
22
23     <body>
24         <div>
25             <img alt="图片" src="${pageContext.request.contextPath}/ShowPictureServlet?fileName=fanfan.jpg">
26         </div>
27     </body>
28 </html>

4.ShowPictureServlet.java

 pacgake com.pearl.util;

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.IOException;
 4 import java.io.OutputStream;
 5
 6 import javax.servlet.ServletConfig;
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 public class ShowPictureServlet extends HttpServlet {
13
14     public void destroy() {
15         super.destroy();
16     }
17
18     public void doGet(HttpServletRequest request, HttpServletResponse response)
19             throws ServletException, IOException {
20         //文件路径
21         String picFolder = "E:/upload/";
22         String fileName = request.getParameter("fileName");
23         if(fileName!=null && !fileName.equals("")){
24             String mimeType = "image/gif";
25             //设置content类型
26             response.setContentType(mimeType);
27             //设置大小
28             File file = new File(picFolder + fileName);
29             response.setContentLength((int) file.length());
30             //打开文件并输出
31             FileInputStream inputStream = new FileInputStream(file);
32             OutputStream out = response.getOutputStream();
33
34             //把文件复制到输出流
35             byte[] data = new byte[1024];
36             int count = 0;
37             while ((count=inputStream.read(data))>=0){
38                 out.write(data, 0, count);
39             }
40             inputStream.close();
41             out.close();
42         }
43     }
44
45     public void doPost(HttpServletRequest request, HttpServletResponse response)
46             throws ServletException, IOException {
47         doGet(request, response);
48     }
49
50
51     public void init(ServletConfig config) throws ServletException {
52         super.init(config);
53     }
54
55 }

5.web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 7   <servlet>
 8     <description>This is the description of my J2EE component</description>
 9     <display-name>This is the display name of my J2EE component</display-name>
10     <servlet-name>ShowPictureServlet</servlet-name>
11     <servlet-class>com.pearl.util.ShowPictureServlet</servlet-class>
12   </servlet>
13
14   <servlet-mapping>
15     <servlet-name>ShowPictureServlet</servlet-name>
16     <url-pattern>/ShowPictureServlet</url-pattern>
17   </servlet-mapping>
18
19   <welcome-file-list>
20     <welcome-file>index.jsp</welcome-file>
21   </welcome-file-list>
22 </web-app>

6.完成。

时间: 2024-08-09 10:38:55

Servlet实现图片读取显示的相关文章

Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示

Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示 在 开发中遇到应用c#及asp.net的在的webservice 保存图片并以xml文件形式现实出来 并用delphi调用 的方法: 1.c#的webservice现实见 http://www.greensoftcode.net/techntxt/20127118441582992373 之前的文章. 2.在客户端用delphi显示 发现asp.net xml形式输出的图片是base64字符串形式.

【Android】读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示

尽管以下的app还没有做到快图浏览.ES文件浏览器的水平,遇到大sdcard还是会存在读取过久.内存溢出等问题,可是基本思想是这种. 例如以下图.在sdcard卡上有4张图片, 打开app,则会吧sd卡上的全部图片读取,并显示出来.读取的过程有进度条显示. 制作步骤例如以下: 1.首先,res\values\strings.xml对字符设置例如以下,没有什么特别的. <? xml version="1.0" encoding="utf-8"?> <

C# 图片保存到数据库和从数据库读取图片并显示

图片保存到数据库的方法: public void imgToDB(string sql)        {   //参数sql中要求保存的imge变量名称为@images            //调用方法如:imgToDB("update UserPhoto set [email protected] where UserNo='" + temp + "'");            FileStream fs = File.OpenRead(t_photo.Te

OpenCV:基于MFC的视频播放器和图片读取器

实例工程包下载[OpenCV:基于MFC的视频播放器和图片读取器] 一.实现的功能 1.打开本地视频进行读取.播放.暂停.停止控制 2.图片打开功能分为两种:可使用"打开图片"按钮打开本地图片,或者点击comobox里面设定的图片列表选择并显示图片 二.编译环境 OS:Win8.1 x64 IDE:  Visual Studio 2013 OpenCV: 2.4.8 三.主要思路 1.视频的滑动条控制: ①主窗体的OnHScroll()响应函数负责响应slider滑动条的变化,这样就轻

echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端

1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小demo的效果图如下:(很熟悉,有没有) 2.按照echarts的使用方法新建一个echarts.html文件.为ECharts准备一个具备大小(宽高)的Dom(讲的有点细,熟悉的朋友直接跳过) <!DOCTYPE html> <head> <meta charset="u

Android -- 打开本地图片且显示路径

背景                                                                                          代码                                                                                           先上布局文件: <LinearLayout xmlns:android="http://schemas.android.co

DAY13 彩色图片分别显示RGB三个通道图片 求图像的均值 方差 熵

% 读取一张彩色图片 分别显示RGB三个通道图片% 将彩色图片换成灰度图像 求图像的均值 方差 熵im=(imread('robot.jpg'));figure,imshow(im); % Step1 分别显示RGB三个通道图片subplot(2,2 ,1),imshow(im); %原始彩色图像subplot(2, 2 ,2),imshow(im(:,:,1)); %R通道 im(:,:,1) 表示三维图像 第一个参数表示获取全部行subplot(2 ,2 ,3),imshow(im(:,:,

【Android】内存卡图片读取器,图库app

上一篇<[Android]读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示>(点击打开链接)在真机上測试非常有问题.常常遇到内存溢出.卡死的情况.由于如今真机上的内存上,2G已经非常少见了,基本上都8G的样子了. 由于把读取出来的图片一次性地放到app上,而且读取的过程中,又没有正在读取到哪个文件,尽管可以在AVD安卓模拟器上完毕主要的功能,可是这个app非常不友好. 因此採用Handler.Message配合线程等安卓消息机制.完毕读取过程,而且利用GridView把读取到的图

截取部分图片并显示-ios例子[转载]

截取部分图片并显示 在ios开发中,肯定会碰到需要截取部分图片的情况. 最终的效果类似这样: 先看最原始的示例,显示完整的图片 写了个最简单的读取图片并显示的代码,打算以此为开始,逐渐实现截取部分图片的功能. 代码主要是,在控制器代码中: - (void)loadView {     [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationSlide];     UI