震惊我自己一整年,在servlet中使用response.sendRidirect()进行重定向时,地址一定要记得加“/”!!!
无论是配置了TemplatePath的ftl文件还是普通的地址,都要加!!
正确代码:response.sendDirect("/index.ftl");
错误代码:response.sendDirect("index.ftl");
特别是在servlet的访问地址采用了*通配符的情况下,如
@WebServlet(name="test",value="/test/*")
在对*进行uri的提取的时候很容易把“/”也剔除掉,如
String uri = request.getRequestURI();
String uri1 = uri.substring(1);
String uri2 = uri1.substring(uri1.indexof("/"));
//这个时候的uri2就是/index