我想在我的Servlet中创建一个txt文件,并在客户端请求时自动在客户端下载它。我有以下代码写入txt,但它使用glassfishserver在Netbeans IDE中提供访问被拒绝错误。我该怎么办?
//File creation
String strPath = "C:\\example.txt";
File strFile = new File(strPath);
boolean fileCreated = strFile.createNewFile();
//File appending
Writer objWriter = new BufferedWriter(new FileWriter(strFile));
objWriter.write("This is a test");
objWriter.flush();
objWriter.close();
答案 0 :(得分:1)
这不是你在JSP中做的事情。您最好拥有Servlet
并创建一个Outputstream
并将文字放入其中。然后将该流刷新到HttpServletResponse
。
@WebServlet(urlPatterns = "/txt")
public class TextServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/plain");
response.setHeader("Content-Disposition", "attachment; filename=\"example.txt\"");
try {
OutputStream outputStream = response.getOutputStream();
String outputResult = "This is Test";
outputStream.write(outputResult.getBytes());
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
请记住,您需要设置内容类型text/plain
和Content-Disposition
标题,提及文件名,并告知broswer应将其作为文件附件下载。
这就是 Content-Disposition 标题在简明描述中的含义
在常规HTTP响应中,Content-Disposition响应标头是 标题,指示是否期望内容显示内容 在浏览器中,即作为网页或作为网页的一部分,或作为 附件,在本地下载和保存。
如果您是初学者。您可能希望从此了解更多信息