jsp中打开pdf文件:中文目录(中文文件名)问题:还望大虾们帮助,不胜感激

lymkelly 2003-09-19 04:25:31
jsp中打开pdf文件:中文目录(中文文件名)问题
我的
直接打开
或者
用输入输出流

英文的目录,文件名实现了

但是,中文的目录名,文件名实现不了
上面的实现在另外一个贴字里http://expert.csdn.net/Expert/topic/2271/2271350.xml?temp=.7396814

还望大虾帮助,不胜感激
...全文
689 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
kettycat 2003-09-25
  • 打赏
  • 举报
回复
up
lymkelly 2003-09-24
  • 打赏
  • 举报
回复
liad() ( ) 大虾

words时不时
也可以用这种方式打开呢
现在我的问题是

一个目录下面好多文档
不同的扩展名
不知道怎样才能统一起来
lymkelly 2003-09-24
  • 打赏
  • 举报
回复
to:intelchen(intelchen)
我给你发了
lymkelly 2003-09-24
  • 打赏
  • 举报
回复
logs\目录下面没有stderr.log
stdout.log这两个文件,
只有类似

localhost_admin_log.2003-09-23.txt
的文件

liad() 大虾说的那个用*的,有没有解决中文问题呢

我原来对流这一块一窍不通,现在有了开始,
好好研究一下
lymkelly 2003-09-24
  • 打赏
  • 举报
回复
liad() (大虾
基本上解决了问题
但是呢 如国我的文件名
中有空格,
就会有问题
找不到
lymkelly 2003-09-24
  • 打赏
  • 举报
回复
liad() (大虾
我崇拜的不行了
哎呀
真是太厉害了!!!!!!!!!


lymkelly 2003-09-24
  • 打赏
  • 举报
回复
liad() (大虾
又有了新的进展了阿!!
太好了
我去试一试
liad 2003-09-24
  • 打赏
  • 举报
回复
utf8encode.jsp
==============
<%@ page contentType="text/html; charset=UTF8" pageEncoding="gb2312" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p>
<%= java.net.URLEncoder.encode("测试", "UTF8") %>
<p>
<%= java.net.URLEncoder.encode("文档", "UTF8") %>
</BODY>
</HTML>

html页面输出
%E6%B5%8B%E8%AF%95

%E6%96%87%E6%A1%A3

然后用http://localhost:8080/test/%E6%B5%8B%E8%AF%95/%E6%96%87%E6%A1%A3.pdf
就可直接访问E:\Tomcat4.1\webapps\test\测试\文档.pdf,而不需要什么servlet来处理

由于使用了
<%@ page contentType="text/html; charset=UTF8" pageEncoding="gb2312" %>
所以在google输入关键字“测试”并提交,URL变成了
http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=%E6%B5%8B%E8%AF%95&btnG=Google+Search

而在baidu里面没有将charset设为UTF8
所以在其上面提交关键字“测试”后,URL为
http://www1.baidu.com/baidu?cl=3&tn=baidu&f=4&ct=0&lm=0&word=%B2%E2%CA%D4
liad 2003-09-23
  • 打赏
  • 举报
回复
如果你的tomcat已经转化为windows服务时,你可以通过
E:\Tomcat4.1\logs\stderr.log
E:\Tomcat4.1\logs\stdout.log
看到出错信息和控制台输出信息
lymkelly 2003-09-23
  • 打赏
  • 举报
回复
感谢liad() (
成功了
用你说的 绝对路经的那一个
!!!!!!!!
非常感谢!!!!!!!!


我明天在看一看就揭帖,谢谢

终于冲破了黑暗了!1
完成以后要好好的 研究一下这个地方
非常感谢
intelchen 2003-09-23
  • 打赏
  • 举报
回复
楼主我对那个BPM_Tutorial.pdf敢兴趣

能不能把这个文件发到intelchen@163.net?

你们做BMP的东西吗?
lymkelly 2003-09-23
  • 打赏
  • 举报
回复
to
:liad() (
我觉得如果你的验证成功化的
我的就是目录有了问题
你要执行这个servlet 的话,
按照你的那个部署web.xml的部署

我可能就是中文的目录方错了地方了
我试用一下
用你刚才的
那个绝对路径的
in


liad 2003-09-23
  • 打赏
  • 举报
回复
还有一种方法就是使用
web.xml
=======
<servlet-mapping>
<servlet-name>PdfServlet</servlet-name>
<url-pattern>*.pdf</url-pattern>
</servlet-mapping>
pdf文件都使用PdfServlet去处理,不过DispPDF.java有所改变
这样直接在http://localhost:8080/test/abc.pdf,但是这种方法我没有试验成功中文路径的,request.getServletPath()还搞不定,正在调试
lymkelly 2003-09-23
  • 打赏
  • 举报
回复
哎呀!@

错了
这样





我用的一个大虾的办法:
中文的不可以
英文的可以
大家看一下
java.io.FileNotFoundException: http://127.0.0.1:8080/kyglxxxt/PROJECT/开发/2003/张立国/BPM_Tutorial.pdf

import java.io.*;
import java.net.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class testPDF extends HttpServlet{
public void init(ServletConfig servletconfig)
throws ServletException
{
super.init(servletconfig);


}

public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream out =res.getOutputStream ();
res.setContentType( "application/pdf" ); // MIME type for pdf doc
res.setHeader("Content-disposition","attachment; filename=" +"BPM_Tutorial.pdf" );
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
URL url = new URL("http","127.0.0.1",8080,"/kyglxxxt/PROJECT/BPM_Tutorial.pdf");
bis = new BufferedInputStream(url.openStream());
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
{
bos.write(buff, 0, bytesRead);
}
} catch(final MalformedURLException e) {
System.out.println ( "MalformedURLException." );
throw e;
} catch(final IOException e) {
System.out.println ( "IOException." );
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
}
}

这样就显示正常,不过要谈出两个保存框(要是在jsp中直接使用超级连接,英文的直接就可以显示,没有保存况,所以说。。。。。。。这个方法也是没有用,写出来和那个中文的作个对比)
import java.io.*;
import java.net.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class testPDF extends HttpServlet{
public void init(ServletConfig servletconfig)
throws ServletException
{
super.init(servletconfig);


}

public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream out =res.getOutputStream ();
res.setContentType( "application/pdf" ); // MIME type for pdf doc
String fileURL ="http://127.0.0.1:8080/kyglxxxt/PROJECT/开发/2003/张立国/BPM_Tutorial.pdf";
res.setHeader("Content-disposition","attachment; filename=" +"BPM_Tutorial.pdf" );
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
URL url =new URL(fileURL);

bis = new BufferedInputStream(url.openStream());
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
{
bos.write(buff, 0, bytesRead);
}
} catch(final MalformedURLException e) {
System.out.println ( "MalformedURLException." );
throw e;
} catch(final IOException e) {
System.out.println ( "IOException." );
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
}
}

这样还是不行,错误是:java.io.FileNotFoundException: http://127.0.0.1:8080/kyglxxxt/PROJECT/开发/2003/张立国/BPM_Tutorial.pdf"



liad 2003-09-23
  • 打赏
  • 举报
回复
in = new BufferedInputStream(new FileInputStream("E:/Tomcat4.1/webapps/test/测试/文档.pdf"));
web.xml
=======
<servlet>
<servlet-name>PdfServlet</servlet-name>
<display-name>Pdf Servlet</display-name>
<servlet-class>pdf.DispPDF</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>PdfServlet</servlet-name>
<url-pattern>/servlet/PdfServlet</url-pattern>
</servlet-mapping>

然后用http://localhost:8080/test/servlet/PdfServlet

我的完全可以,要不我也不会贴出代码
lymkelly 2003-09-23
  • 打赏
  • 举报
回复
英文的也不行!!!
总是空白的也面!!!!!!!1






我用的一个大虾的办法:
中文的不可以
英文的可以
大家看一下
java.io.FileNotFoundException: http://127.0.0.1:8080/kyglxxxt/PROJECT/开发/2003/张立国/BPM_Tutorial.pdf

import java.io.*;
import java.net.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class testPDF extends HttpServlet{
public void init(ServletConfig servletconfig)
throws ServletException
{
super.init(servletconfig);


}

public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream out =res.getOutputStream ();
res.setContentType( "application/pdf" ); // MIME type for pdf doc
res.setHeader("Content-disposition","attachment; filename=" +"BPM_Tutorial.pdf" );
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
URL url = new URL("http","127.0.0.1",8080,"/kyglxxxt/PROJECT/BPM_Tutorial.pdf");
bis = new BufferedInputStream(url.openStream());
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
{
bos.write(buff, 0, bytesRead);
}
} catch(final MalformedURLException e) {
System.out.println ( "MalformedURLException." );
throw e;
} catch(final IOException e) {
System.out.println ( "IOException." );
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
}
}

这样就显示正常,不过要谈出两个保存框(要是在jsp中直接使用超级连接,英文的直接就可以显示,没有保存况,所以说。。。。。。。这个方法也是没有用,写出来和那个中文的作个对比)
import java.io.*;
import java.net.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class testPDF extends HttpServlet{
public void init(ServletConfig servletconfig)
throws ServletException
{
super.init(servletconfig);


}

public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream out =res.getOutputStream ();
res.setContentType( "application/pdf" ); // MIME type for pdf doc
String fileURL ="http://127.0.0.1:8080/kyglxxxt/PROJECT/开发/2003/魏振钢/BPM_Tutorial.pdf";
res.setHeader("Content-disposition","attachment; filename=" +"BPM_Tutorial.pdf" );
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
URL url =new URL(fileURL);

bis = new BufferedInputStream(url.openStream());
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
{
bos.write(buff, 0, bytesRead);
}
} catch(final MalformedURLException e) {
System.out.println ( "MalformedURLException." );
throw e;
} catch(final IOException e) {
System.out.println ( "IOException." );
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
}
}

这样还是不行,错误是:java.io.FileNotFoundException: http://127.0.0.1:8080/kyglxxxt/PROJECT/开发/2003/张立国/BPM_Tutorial.pdf"



lymkelly 2003-09-23
  • 打赏
  • 举报
回复
to:liad() (:
我试验了 不行的
中文的不行
英文的可以
csdnxw 2003-09-23
  • 打赏
  • 举报
回复
这位老兄跟张兄认识?
lymkelly 2003-09-23
  • 打赏
  • 举报
回复
楼上的理解对吗???????????
大虾指教
intelchen 2003-09-23
  • 打赏
  • 举报
回复
个人觉得kinoviti(-=K.V=-) 那个是正解,
但是我不确定最后一句话“同时再每一位转换成的16进制头尾分别
加上%”
如果我的路径是“http://localhost/english/雅 思/雅思英语学习/东方雅思资料.pdf”
对应到我的文件系统的路径是"c:/tomcat/webapps/english/雅 思/雅思英语学习/东方雅思资料.pdf"
我是不是只要将“c:/tomcat/webapps/english/”保持不变“/雅 思/雅思英语学习/东方雅思资料.pdf”的每个字符(包括空格之类的特殊符号)前加上%就可以?
如果是路径是“c:/tomcat/webapps/english/雅 思/雅思英语学习/pdf/东方雅思资料.pdf”
那“雅 思/雅思英语学习/pdf/东方雅思资料.pdf”中的那个“pdf”并不需要加上%?
不知道你有没有源程序给我们看看?

加载更多回复(20)
内容概要:本文提出了一种考虑构网型储能支撑能力的微电网优化调度策略,通过Matlab代码实现,旨在提升微电网在复杂运行环境下的稳定性与经济性。研究聚焦于构网型储能系统(如虚拟同步发电机VSG)的动态特性及其对微电网频率、电压等关键参数的主动支撑能力,构建了包含光伏、储能、负荷等多元组件的微电网系统模型。采用优化算法(如改进灰狼算法、模型预测控制等)对系统进行日前或实时调度,优化目标涵盖运行成本最小化、可再生能源消纳最大化、储能寿命延长以及系统可靠性提升等多个方面。文详细阐述了模型构建、算法设计与仿真验证全过程,并通过案例分析证明了所提策略在平抑功率波动、提高能源利用效率和增强系统韧性方面的有效性。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真工具,从事微电网、分布式能源、储能控制等领域研究的研发人员和研究生;尤其适合有一定科研基础、希望深入理解构网型控制与优化调度结合应用的1-3年工作经验的研究者。; 使用场景及目标:① 掌握构网型储能(Grid-Forming Energy Storage)在微电网的建模方法与控制原理;② 学习如何将储能的主动支撑能力融入优化调度框架,实现源-储-荷协同调控;③ 借助Matlab代码实现完整的微电网优化调度仿真流程,用于科研论文复现、课题开发或工程方案预研。; 阅读建议:此资源以实际Matlab代码为核心,理论与实践紧密结合,建议读者在理解基本电力系统知识的基础上,结合文档的模型结构与算法逻辑,逐步调试并运行代码,深入掌握每一步的实现细节。同时可参考文提及的智能优化算法与控制策略,拓展至其他类似电力系统优化问题的研究
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 UG(Unigraphics)是一种功能完备的计算机辅助设计与制造(CAD/CAM)软件,在机械工程、汽车制造、航空航天等多个行业得到普遍使用。FANUC作为全球领先的数控系统生产商,其数控机床在精密加工领域得到了广泛部署。"UG FANUC经典后处理"是指为FANUC数控系统专门设计的UG软件后处理技术,它是CAM编程过程的关键组成部分。 后处理是UG CAM系统的一个构成部分,其核心功能是将由UG生成的刀具路径数据转换为特定数控系统的机器指令,这些指令能够被FANUC数控机床所识别并执行。FANUC18M可能代表FANUC的一个特定型号或版本的控制系统,该系统拥有M代码功能,用于控制机床的多种动作。 UG的后处理流程包括对刀具路径的改进、速度与进给率的确定、换刀指令的制定以及切削参数的配置等环节。用户可以根据自己机床的特性与加工需求来设计后处理器,目的是确保生成的代码既高效又安全,同时满足工件精度要求。 "UG FANUC经典后处理"可能集成了一套预设的、适用于FANUC系统的工作参数和代码格式,帮助用户在编程时能够迅速且精确地为FANUC机床生成G代码。这一特性显著简化了编程步骤,减少了错误发生的概率,对于不太熟悉后处理技术的用户而言,是一个极具价值的工具。 在实际操作,用户可能需要依据工件的材料、形态、大小以及加工方法来调整后处理参数,比如切削速度、进给率、刀具选择等。FANUC18M后处理器通常会提供一系列预设配置,用户可以根据具体情况进行选择和细致调整,以获得最优的加工表现。 除了基础的G代码生成,UG的后处理还可能包含其他高级特性,例如模拟验证。借助UG的...
内容概要:本文围绕新能源发电接入弱电网所引发的宽频带振荡问题,结合Matlab与Simulink工具开展系统性研究,重点复现并深入分析了博士论文关于振荡机理的建模、仿真与抑制方法。研究内容涵盖光伏逆变器在弱电网环境下的阻抗建模、锁相环动态耦合效应、LCL滤波器的分序阻抗特性、扫频稳定性分析方法以及宽频耦合失稳机制,提供了完整的代码与仿真模型,帮助读者深刻理解新能源并网系统的稳定性问题及其内在机理。; 适合人群:具备电力系统、新能源发电或控制理论基础知识的研究生、科研人员及从事相关领域工程仿真的技术人员,尤其适合正在开展相关课题研究或进行高水平学术论文复现的学习者。; 使用场景及目标:①用于复现高水平学术论文的关键模型与仿真结果,掌握新能源并网系统的宽频振荡分析方法;②支撑科研工作对光伏逆变器、锁相环、LCL滤波器等核心部件的建模与稳定性评估;③为撰写学位论文、期刊投稿或承担科研项目提供可靠的技术参考与可运行的代码支持。; 阅读建议:建议结合文档提供的Matlab代码与Simulink模型进行逐步操作,重点关注阻抗建模与扫频法的实现细节,深入理解理论推导与仿真验证之间的对应关系,宜在动手实践深化对宽频振荡机理与抑制策略的认知,并可参考文提及的其他复现资源拓展研究思路。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧