1 <%@ page language="java" import="java.util.*,java.io.*"
2 pageEncoding="UTF-8"%>
3 <%
4 String path = request.getContextPath();
5 String basePath = request.getScheme() + "://"
6 + request.getServerName() + ":" + request.getServerPort()
7 + path + "/";
8 %>
9 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
10 <html>
11 <head>
12 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
13 <title>PDF文件显示</title>
14 </head>
15 <%
16 out.clear();
17 out = pageContext.pushBody();
18 response.setContentType("application/pdf");
19
20 request.setCharacterEncoding("UTF-8");// 设置接收的字符集
21
22 try {
23
24 //这块由于中文参数的编码问题导致参数传递出现bug 如果解决这个问题则迎刃而解
25 String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"UTF-8");//但是这个对于有特殊字符的文件名称而言并不可靠
26 String strPdfPath = new String("C:/Users/1101399/Desktop/PDF/" + name);
27 //判断该路径下的文件是否存在
28 File file = new File(strPdfPath);
29 if (file.exists()) {
30 DataOutputStream temps = new DataOutputStream(response.getOutputStream());
31 DataInputStream in = new DataInputStream(new FileInputStream(strPdfPath));
32
33 byte[] b = new byte[2048];
34 while ((in.read(b)) != -1) {
35 temps.write(b);
36 temps.flush();
37 }
38
39 in.close();
40 temps.close();
41 } else {
42 out.print(strPdfPath + " 文件不存在!");
43 }
44
45 } catch (Exception e) {
46 out.println(e.getMessage());
47 }
48 %>
49 <body>
50 <br>
51 </body>
52 <script type="text/javascript">
53 </script>
54 </html>

我们在调用这个jsp界面时只需要传入对应的文件名称参数即可实现显示对应的PDF文件。

又及:

如果我们想要确切的使用web项目发布之后服务器的文件则将PDF的文件地址换位如下

 String strPdfPath = new String(request.getSession().getServletContext().getRealPath("/") + "/WEB-INF/jsp/wareHouse/" + name);
我们通过
 request.getSession().getServletContext().getRealPath("/")

来确定服务器的根文件目录

这块也换成任何服务器可以访问到的文件地址,这样我们可以将文件存储于项目文件分离便于管理

通过URL传递PDF名称参数显示PDF的更多相关文章

  1. Django路由系统---django重点之url传递一个默认参数

    django重点之url传递一个默认参数 可以利用这个特性,让2个URL映射一个函数,但是返回2个不同的HTML url(r'default_param1', views.def_param,), u ...

  2. URL传递多个参数遇到的bug

    bug所在: 通过URL传递多个参数的时候,其一是中文出现乱码,其二是空格被“%20”替代: 原因分析:原理暂时还不清楚,后续再研究下原理,只知道有中文的时候就会出现乱码:%20是url空格的编码: ...

  3. Js获取url传递过来的参数

    原理跟取cookie值一样的 function getParamer(paramer){ var url=window.location.href.split("?")[1];/* ...

  4. 2016.4.6 WinForm显示PDF两种方法

    1.最直接的方法,添加webbrowser控件 webb.Url = new Uri(path);可显示pdf控件. 如果需要在打开时跳转到某页,可用在路径后直接加#page=,例如webb.Url ...

  5. MVC中URL传多个参数

    1.mvc中url传递多个参数不能直接使用&,会报错(从客户端(&)中检测到有潜在危险的 Request.Path 值) 方法①:使用?---/Home/Index/?id=xxx&a ...

  6. Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间

    Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间 一丶URLconf配置 ...

  7. URL传递的参数是UTF-8编码,在打开的页面正常显示(GB2312)的方法

    URL传递的参数采用的是UTF-8编码,在打开的子页面中显示乱码, URL传递的地址形如:http://localhost/test.aspx?orgname=%E5%8B%**%**%**%**&a ...

  8. Reporting Service Url传递参数应用

    与sharepoint集成的报表传递参数示例: http://reportserver/reportcenter/_layouts/ReportServer/RSViewerPage.aspx?rv: ...

  9. SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework

    1运行效果: 2开发实现: 如果需要单独显示PDF文件时用下面代码去实现,指定url地址. 地址: . 获取附件管理的实体对象: List<KeyValuePair<string, obj ...

随机推荐

  1. Cglib及其基本使用

    前言 最近一直在看Spring源码,其实我之前一直知道AOP的基本实现原理: 如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cgli ...

  2. 常用Oracle进程资源查询语句(运维必看)

    (一)根据程序名称查找相关信息select A.process,B.spid,A.sid,A.serial#,A.sql_address,A.username,A.program,A.status,A ...

  3. Win10下用Anaconda安装TensorFlow

    什么是Anaconda anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.它是一个用python开发机器学习的必备工具. 什么是ten ...

  4. java ---日期的格式化

    import java.util.Date; import java.util.Scanner; import java.text.SimpleDateFormat; import java.util ...

  5. Django 2.0 学习(02):Django视图和URL(上)

    接上篇博文,接下来我们以具体代码例子来说明Django的基本流程. 创建项目 使用Win+R,输入cmd进图windows命令行模式: 再你想要存放项目工作的磁盘,输入下面命令: django-adm ...

  6. 软件测试第二周作业 WordCount

    本人github地址:  https://github.com/wenthehandsome23 psp阶段 预估耗时 (分钟) 实际耗时 (分钟) 计划 30 10 估计这个任务需要多少时间 20 ...

  7. centos7服务的管理

    centos7上服务管理  author:headsen chen     2017-10-16  16:03:53       1,启动服务(每条都可以) systemctl start httpd ...

  8. Filecoin协议(挖矿)

    Filecoin协议是如何运作的? 用户如何使用Filecoin系统来查询,存储数据? 存储矿工如何挖矿,如何获取FIL代币? 检索矿工如何挖矿,获取FIL代币? 本文主要回答上面的这些问题!!! 首 ...

  9. Angular-Mobile介绍

    陆续更新中 1. 介绍: * Angular-Mobile是使用Angular和Bootstrap3为手机端网页和App提供支持的前端UI框架.

  10. 前端的UI设计与交互之数据展示篇

    合适的数据展示方式可以帮助用户快速地定位和浏览数据,以及更高效得协同工作.在设计时有以下几点需要注意:依据信息的重要等级.操作频率和关联程度来编排展示的顺序.注意极端情况下的引导.如数据信息过长,内容 ...