我试图在点击链接后从服务器下载excel文件。我编写了下面的JSP和Servlet代码。 JSP和Servlet都在同一个文件夹中。单击超链接以下载excel文件后,我收到错误“The requested resource (/BulkAccess/Download) is not available
”。
JSP页面
<body>
<a href="Download"> Sample Excel File </a>
</body>
的Servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
@SuppressWarnings("serial")
public class Download extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
String filename = "C:\\excelFile.xls";
ServletOutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(filename);
response.setContentType("application/vnd.ms-excel");
response.addHeader("content-disposition",
"attachment; filename=" + filename);
int octet;
while((octet = in.read()) != -1)
out.write(octet);
in.close();
out.close();
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
我在web.xml中有映射。下面是代码。
<servlet>
<servlet-name>Download</servlet-name>
<servlet-class>com.abc.bulk.Download</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Download</servlet-name>
<url-pattern>/Download</url-pattern>
</servlet-mapping>
答案 0 :(得分:0)
看来你在调用Servlet时遇到了问题。
这应该有用。
<a href="<%=request.getContextPath() %>/Download"> Sample Excel File </a>
此外,您已提及
JSP和Servlet都在同一个文件夹中
通常,JSP位于/webapp
或/WebContent
下,Servlet位于/src/mypackage
下。
与问题无关:使用小写URL映射是一种很好的做法。