高手帮帮忙,马上要解决的问题,头好疼?

吴青峰 2008-05-26 10:20:08
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
response.setContentType("text/html");
PrintWriter out = response.getWriter();

out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
String filePath = new String(request.getParameter("path"));
String firstTitleId = request.getParameter("firstTitleId");
secondFile = new File(filePath);
secondFileReader = new FileReader(secondFile);
br = new BufferedReader(secondFileReader);// 包装成缓冲字符读取流
String chars = br.readLine();
while (chars != null) {
out.println(chars);
chars = br.readLine();
out.println("<br>");
}
// 构建返回超连接
out.println("<a href='" + request.getContextPath()
+ "/newspre.jsp?parentId=" + firstTitleId + "'>返回</a>");
out.println();
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

以上抛出的异常:
2008-5-26 22:14:03 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\MyEclipse 6.1 Blue Edition - Milestone 1\bin;C:\Program Files\MyEclipse 6.1 Blue Edition - Milestone 1\myeclipse\eclipse\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_6.0.2.zmyeclipse60300200802\tomcat\bin
2008-5-26 22:14:03 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2008-5-26 22:14:03 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 705 ms
2008-5-26 22:14:03 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2008-5-26 22:14:03 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.13
2008-5-26 22:14:03 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2008-5-26 22:14:03 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2008-5-26 22:14:03 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/31 config=null
2008-5-26 22:14:03 org.apache.catalina.startup.Catalina start
信息: Server startup in 778 ms
2008-5-26 22:14:20 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet SecondTitleDetail threw exception
java.io.FileNotFoundException: D:\????????\news1.txt (系统找不到指定的路径。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at com.news.view.SecondTitleDetail.doGet(SecondTitleDetail.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
...全文
148 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
吴青峰 2008-05-27
  • 打赏
  • 举报
回复
是上传文件n_n
吴青峰 2008-05-27
  • 打赏
  • 举报
回复
我是从数据库中读取得文件路径。不过我这样用了,输出乱码;我转码过,也不行;
public String formatstr(String str){
String s=new String(str.getBitys("iso-8859-1"),gbk);
return s;
}
或者
response.setc.....("gbk");
也不行!
xtzhoujie 2008-05-27
  • 打赏
  • 举报
回复
java.io.FileNotFoundException: D:\????????\news1.txt
做下载吧
gbk不行,试试gb2312
lixq2000 2008-05-27
  • 打赏
  • 举报
回复
瞧瞧!
Shine_Panda 2008-05-27
  • 打赏
  • 举报
回复
<%@ page language="java" pageEncoding="GBK"%>
zhuyl_wind 2008-05-27
  • 打赏
  • 举报
回复
response.setContentType("text/xml;charset=gbk");
loveyt 2008-05-27
  • 打赏
  • 举报
回复
new String(str.getBytes("ISO8859-1"), "GBK");
如果不行试试看UTF-8
loveyt 2008-05-26
  • 打赏
  • 举报
回复
看来不是,应该是从一个文件里面读取内容然后Print到Response里面.request.getParameter获取的是客户端提交的参数,也就是客户选择D:\xxx.txt,普通的FORM传递到Servlet里面也是D:\xxx.txt,而JAVA是不能直接读取客户端的文件的,Server的D盘当然没有xxx.txt文件,于是抛出一个FileNotFoundException.如果想要Print用户上传文件内容,一种方法是用JS创建文件流对象,直接在客户端本身操作.不过会报ActiveXObject危险警告.另一种方法是通过enctype的FORM将文件传递到Server端,然后Server再读取文件内容Print到Response流.其他的实现方法请后来的前辈指教.
loveyt 2008-05-26
  • 打赏
  • 举报
回复
LZ是不是想做文件上传的功能?

81,122

社区成员

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

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