我正在尝试设置servlet映射,以便我的DispatcherServlet“调度程序”映射“/ getFile / {fileId}”形式的URL。
如果我按如下方式设置我的web.xml,则只会映射“/ getFile”,我无法附加fileId或者它会中断。
gremlin> found = g.V(vertices["LV"]).out().out().fold().
gremlin> where(count(local).is(m.size() << 1)).
gremlin> not(unfold().is(without(leafs))).hasNext()
==>false
所以我原以为我应该使用
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/getFile</url-pattern>
</servlet-mapping>
但这根本不起作用。
我试图调用的方法是
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/getFile/*</url-pattern>
</servlet-mapping>
知道我做错了吗?
编辑:它不像下面那样重复,因为我没有只是“/”的servlet映射。因此,没有默认的回退映射。
我的完整映射。
@RequestMapping(value = "/getFile/{documentId}", method = RequestMethod.GET)
public void getFile(@PathVariable int documentId, HttpServletResponse response) throws Exception {
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserDB userDB = UserDBService.getUser(user.getUsername());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Document document = DocumentService.getDocument(documentId);
String extension = document.getExtension();
try {
String path = ApplicationPropertiesConstants.SAFESITE_DOCUMENTS_DIRECTORY + userDB.getSite().getId() + "\\" + documentId + "." + extension;
InputStream is = new FileInputStream(path);
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/png");
org.apache.commons.io.IOUtils.copy(is, response.getOutputStream());
response.flushBuffer();
} catch (IllegalArgumentException e) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
}
答案 0 :(得分:0)
是的,所以我使用url
修复了它/的GetFile /的GetFile / {documentId}
在我的客户端。