2012-12-31 81 views
2

這兩者之間的區別是什麼?JSP和servlets中頁面路徑的概念

在JSP:

${pageContext.request.contextPath} 

,以及如何,如果沒有編碼的表達式語言和一個servlet來實現同樣的結果?

在servlet的:

request.getServletPath() 

,以及如何在編碼在JSP中實現同樣的結果?

+0

似乎是[此API調用](http://docs.oracle.com/javaee/6/ api/javax/servlet/http/HttpServletRequest.html#getContextPath())和[此API調用](http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getServletPath ())給我... – Makoto

+0

我需要掌握它的含義的細節。 – kevin

回答

4

$ {pageContext.request.contextPath}:返回指示請求上下文的請求URI部分。實際上,它與request.getContextPath()相同,因爲${pageContext.request}是指當前請求的HttpServletRequest

例如:

http://localhost:80/myapplication/path/servlet

  • ${pageContext.request.contextPath}回報/myapplication

  • request.getServletPath()返回調用這個servlet的請求的URL,例如部分/path/servlet

  • ${pageContext.request.servletPath}回報/path/servlet

+0

不錯。什麼是相當於要求。表達式語言或JSTL中的getServletPath() – kevin

2

作爲一個回答你的問題的第二部分:

request.getServletPath(),以及如何在編碼中 JSP中使用表達式語言來實現同樣的結果?


這裏相當於request.getServletPath()使用表達式語言:

${pageContext.request.servletPath}

如果你想用表達式語言來使用其他的ServletRequest/HttpServletRequest的方法,只需要用${pageContext.request.method},其中方法是合適的方法之一。

0

在由JSP處理視圖的情況下,$ {pageContext.request.servletPath}返回jsp的路徑,而不是web.xml中的servlet路徑。爲了得到我使用:$ {requestScope ['javax.servlet.forward.servlet_path']}