不指定虚拟路径的前提下通过http访问pdf、图片等文件

  

  通常我们通过http访问图片或者pdf的时候都是将文件上传到指定文件夹下面,然后通过配置虚拟路径来访问指定的资源。

  在不配置虚拟路径的情况下,我们通过获取到response的outpurstream,然后向该outputstream输出指定的文件也可以,用IOUtils工具类更是简单方便。

例如:

  依赖的包:

    

package cn.qlq.web;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;

/**
 * Servlet implementation class TestServlet
 */
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        FileInputStream in = null;
        ServletOutputStream outputStream = null;
        try {
            in = new FileInputStream(new File("C:\\Users\\Administrator\\Desktop\\测试文档\\Java开发-太原科技大学-软件工程-乔利强.pdf"));
            outputStream = response.getOutputStream();
            IOUtils.copyLarge(in, outputStream);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            IOUtils.closeQuietly(in);
            IOUtils.closeQuietly(outputStream);
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

测试:

原文地址:https://www.cnblogs.com/qlqwjy/p/9510878.html

时间: 2024-08-12 00:50:45

不指定虚拟路径的前提下通过http访问pdf、图片等文件的相关文章

【IDEA】IDEA中配置tomcat虚拟路径的两种方法

首先要确保使用的是本地的tomcat服务器,而不是maven插件. -------------------------第一种:使用IDEA工具自动配置(推荐这种)---------------------------- 选中本地需要配为虚拟路径的文件夹 编写项目名字: 测试:(例如访问我下面的文件:     G:\jwxt\teachingFile\5b66bbdb54494fc59710dcc2f7ff884e.pdf) --------------第二种:使用tomcat的manager项目

weblogic虚拟路径的配置和使用

项目场景: 公司中医疗项目需要展示药品说明书的其他版本(图片或者PDF),由于其他版本文件存在Linux服务器上,服务器用的是weblogic, 无法直接访问文件,因此可以用weblogic的虚拟路径解决 解决的方法为:在weblogic.xml文件中配置要映射的路径为虚拟路径. <virtual-directory-mapping>             <local-path>D:/PRfcas</local-path>             <url-p

jsp网页在浏览器中不显示图片_eclipse环境下配置tomcat中jsp项目的虚拟路径

遇到的问题是这种,在jsp网页中嵌入了本地的图片,由于会用到上传到服务器的图片,所以没有放到项目里面,而是把全部图片单独放到一个文件夹里,然后打算使用绝对路径把要显示的图片显示出来.比方是放在了E盘的uploadPhotos文件夹里.可是在使用绝对路径显示时.代码例如以下: <img width="200" height="150" src="E:\uploadPhotos\DSC00216.jpg" border="1"

Tomcat下配置虚拟路径管理web项目

关于虚拟路径.在学习javaweb的培训课程,今天老师给出了这样一个场景. 当我们的项目,在有一个项目不同的目录的时候,我们如何去使用tomcat去管理web项目. 老师提出的解决方案是 利用虚拟路径的方式,并且按照如下方式对tomcat进行配置.使得 tomcat可以管理不同目录上的项目. 我的问题:项目不是转换成war包发布到tomcat上吗,然后放在了webapps目录下面吗? 或者直接把项目放置webapps下面. 1.为什么有可能出现 管理不同目录下的web项目呢? 2.上面两种方式,

Centos下配置Tomcat7工作目录和虚拟路径

写在前面:网上很多博文都是复制黏贴,我试了很多都不行,所以自己测试下写了一版! 1.tomcat安装 很简单只需下载tomcat7 tar包 执行命令:tar -zxvf tomcat-7.56.tar Tomcat无需配置其他环境变量 2.配置工作目录 修改conf/server.xml在</Host>之前加入<Content path="" docBase="/usr/local/www" reload="true" /&g

设置tomcat虚拟路径,删除指定文件

一.背景 服务器经常被人黑.webapps下时常莫名其妙的多了一个未知的恶意war文件.对此的反应: 1.修改tomcat虚拟路径. 2.定时检测webapps和work文件夹下的文件,删除不知名的文件. 二.tomcat的server.xml 在C盘下新建webApp和.webWork两个文件夹,将server.xml中的host节点修改为: <Host name="localhost" appBase="C:/webApp/" workDir="

Java扫描classpath指定包路径下所有class

在写框架时 经常需要扫描classpath指定包路径下带有某个Annotation的类,自己整理了一下 封装成一个工具类了,供大家参考. 源代码ClassPathResourceScanner.java 如下: package com.bytebeats.jupiter.ioc; import com.bytebeats.jupiter.util.ClassHelper;import org.slf4j.Logger;import org.slf4j.LoggerFactory; import

Web环境下新增一个访问路径(虚拟路径)

在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加: <Context docBase="D:\develop\upload\temp" path="/pic" reloadable="false"/> 访问http://localhost:8080/pic即可访问D:\develop\upload\temp下的图片. 也可以通过eclipse配置,如下图: 复制一张图片到存放图片的文件夹,使用浏览

得到网站下的文件虚拟路径的方法

public string GetUrl_Path() { string url = "http://" + HttpContext.Current.Request.Url.Host; string url_sub = HttpContext.Current.Request.ApplicationPath; if (url_sub == "/") { url_sub = ""; } url = url + url_sub; return url;