感谢大佬:https://blog.csdn.net/u010180031/article/details/52369537
request.getSchema()
,返回的是当前连接使用的协议,一般应用返回的是http、SSL返回的是https;
request.getServerName()
,返回当前页面所在的服务器的名字;
request.getServerPort()
,返回当前页面所在的服务器使用的端口,80;
request.getContextPath()
,返回工程的上下文根.一般与当前页面所在的应用名字同名。
getContextPath()
是jsp中获取路径的一种方式,那么获取到结果是什么呢?jsp其他获取路径的方式是怎样的呢?表示好奇,请听分解:
以访问的jsp为:http://localhost:8080/dmsd-itoo-exam-log-web/course/index.jsp
,工程名为/dmsd-itoo-exam-log-web
为例:
request.getContextPath()
,得到工程名:/dmsd-itoo-exam-log-web;
request.getServletPath()
,返回当前页面所在目录下全名称:/course/index.jsp;
request.getRequestURL()
,返回IE地址栏地址:http://localhost:8080/dmsd-itoo-exam-log-web/course/index.jsp
;
request.getRequestURI()
,返回包含工程名的当前页面全路径:/dmsd-itoo-exam-log-web/course/index.jsp
。
servletContext.getRealPath(string)
,为给定虚拟路径返回包含实际路径的 String
对jsp获取当前应用的路径方法和request常用方法有了基本的了解,下面后台通过request.getScheme()
获取当前页面使用协议遇到的问题:
request.getSchema()
获取到的确实http而不是https,与request.getRequestURL()拿到的一样也是http。
这是为什么呢?
原来,nginx+tomcat部署web服务,tomcat接收到的请求是来自nginx的http请求。我想这也是上一博文中说到项目用https启动请求不到页面的原因吧。
补充:
https://www.cnblogs.com/LiuYuXuanIsSoGood/p/7923254.html https://www.cnblogs.com/wangenxian/p/10828276.html