今天我发现getServerPort()可以返回-1的小惊喜。我使用端口来构建这样的主机名:
return grunt.task.run([
'clean:server',
'env:all',
'injector:sass',
'concurrent:test',
'injector',
'autoprefixer',
'karma'
,'protractor'
]);
答案 0 :(得分:3)
请参阅:http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getServerPort()
如果未在URL中指定端口,则返回-1。 通常在浏览器中,通常在没有端口的情况下访问http,浏览器默认为80。 同样,https默认为443;
您不能依赖或期望在所有情况下都指定端口,并且应该编码以检查该端口。您正在检查port == -1,检查null是不必要的,因为该方法返回一个原始int并且永远不会为null。
如果要检测http或https,请使用 getScheme()方法没有请求:http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getScheme