web項目的getContextPath()


伯樂一看小編的這個博文的標題是不是覺得有些小,以點到面,知道了web中getContextPath()這種獲取路徑的方式,顯然其他的方式的是可以以此類推的。常說,工作學習找共同點嘛。

       上一段我們也提高getContextPath()的含義,是jsp中獲取路徑的一種方式,返回當前頁面所在的應用的名字。知其然知其所以然,知道它大體上的含義,看看在項目中是如何使用的?

String path = request.getContextPath();  
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
<base href="<%=basePath%>">  

  在程序中我們一般這樣使用。說到了這里,我們可以看看request常用的方法:

 

       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。
       對jsp獲取當前應用的路徑方法和request常用方法有了基本的了解,下面后台通過request.getScheme()獲取當前頁面使用協議遇到的問題:request.getScheme()獲取到的確實http而不是https,與request.getRequestURL()拿到的一樣也是http。

       這是為什么呢?

       原來,nginx+tomcat部署web服務,tomcat接收到的請求是來自nginx的http請求。我想這也是上一博文中說到項目用https啟動請求不到頁面的原因吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM