代码拉取完成,页面将自动刷新
源码:
public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
if("/".equals(target)) {
this.nextHandler.handle(target, request, response, isHandled);
} else if(target.indexOf(46) == -1) {
HandlerKit.renderError404(request, response, isHandled);
} else {
int index = target.lastIndexOf(this.viewPostfix);
if(index != -1) {
target = target.substring(0, index);
}
this.nextHandler.handle(target, request, response, isHandled);
}
}
中间执行} else if(target.indexOf(46) == -1) {
这句话验证请求地址里有没有.
如果请求地址是:http://www.xxx.com/user/abc.html
这样的地址完全没问题,可以处理掉后面的.html
但是如果地址是:http://www.xxx.com/user/abc
这样的地址,断点进去看到target的值是/user/abc
这个地址也是合法的,本不应该过滤后缀直接进入到controller中,但因为上面还有一层处理.
的逻辑,导致直接报错了
不知道当初开发这个handler的时候是出于什么初衷还要过滤一下.
?