我有以下代码......
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
final int idValue = Integer.parseInt(req.getParameter("id"));
final ProjectRunEntity projectRunEntity = projectDataService.findProjectRunEntity(idValue);
try {
final byte[] documentAsBytes = wordFileGenerationService.getDocumentAsBytes(projectRunEntity);
resp.setContentType("application/msword");
resp.setHeader("Content-Disposition", "inline; filename=example.doc;");
final ServletOutputStream out = resp.getOutputStream();
out.write(documentAsBytes);
out.flush();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
它获取一些恰好是word文档的字节并将它们写入servlet响应。出于某种原因,当我点击网址时,我在浏览器中收到以下消息...
“HTTP状态405 - HTTP方法GET是 此网址不支持“
我在Tomcat 6上。有什么想法吗?我知道调试器中没有任何内容,字节被写入响应的输出流。
答案 0 :(得分:3)
我猜错误是由默认doGet
实施引发的(当您致电super.doGet(req, resp)
时)。
答案 1 :(得分:2)
该状态在super.doGet(...)中设置。请删除该电话。
答案 2 :(得分:2)
do {Http-Method}方法意味着被覆盖。他们的默认实现是“不支持”。无需调用super.do {http-Method}
答案 3 :(得分:1)
我只需删除此行......
super.doGet(req, resp);