代码运行报错,求大神指点
那都 2013-12-12 04:26:20 filename、fennei_name、gc_name是从帆软报表中传递过来的参数,是中文的,先转换成cjkEkcode,再转换回去,不然就无法下载,代码如下:
<script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>
<script type="text/javascript">
var filename = FR.cjkDecode(<%=request.getParameter("filename")%>)
var fennei_name = FR.cjkDecode(<%=request.getParameter("fennei_name")%>)
var gc_name = FR.cjkDecode(<%=request.getParameter("gc_name")%>)
</script>
<%@page language="java" contentType="application/x-msdownload" pageEncoding="gb2312" %>
<%
response.reset();
response.setContentType("application/x-download");
String downloadfile = "E:/文件/"+gc_name+"/"+fennei_name+"/"+filename; //设置下载文件的路径及名称
response.setHeader("Content-disposition","attachment; filename="+gc_name+"_"+fennei_name+"_"+filename); //设
置下载文件的名称
java.io.OutputStream outp = null;
java.io.FileInputStream in = null;
try
{
outp = response.getOutputStream();
in = new java.io.FileInputStream(downloadfile);
byte[] b = new byte[1024];
int i = 0;
while((i = in.read(b)) > 0)
{
outp.write(b, 0, i);
}
outp.flush();
}
catch(Exception e)
{
System.out.println("Error!");
e.printStackTrace();
}
finally
{
if(in != null)
{
in.close();
in = null;
}
if(outp != null)
{
outp.close();
outp = null;
}
}
%>
错误如下:
type 异 常 报 告
信 息
描 述 服务器遇到内部错误,无法满足这个访问请求
异 常
org.apache.jasper.JasperException: 无法编译JSP
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
gc_name cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
fennei_name cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
filename cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
gc_name cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
fennei_name cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
filename cannot be resolved
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
起 因
org.apache.jasper.JasperException: 无法编译JSP
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
gc_name cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
fennei_name cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
filename cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
gc_name cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
fennei_name cannot be resolved
An error occurred at line: 8 in the jsp file: /downfile.jsp
Generated servlet error:
filename cannot be resolved
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
注 意 完整的起因在Apache Tomcat/5.5.20里。