Servlet的Request中和用戶請求路徑相關的操作有多個,下面一一列舉:
1.getQueryString(),&之后GET方法的參數部分。
2.getServletPath(),web.xml中定義的Servlet訪問路徑。
3.getPathInfo(),Servlet訪問路徑之后,QueryString之前的中間部分。
4.getContextPath(),Context路徑前綴(這個應該是最熟悉的啦)。
5.getRequestURI(),等于getContextPath() + getServletPath() + getPathInfo()。
6.getRequestURL(),等于getScheme() + "://" + getServerName() + ":" + getServerPort() + getRequestURI()。
7.getPathTranslated(),等于getServletContext().getRealPath("/") + getPathInfo()。
注意:
1.getServletContext().getRealPath("/") 后包含當前系統的文件夾分隔符(windows系統是"\",linux系統是"/"),而getPathInfo()以"/"開頭。
2.getPathInfo()與getPathTranslated()在servlet的url-pattern被設置為/*或/aa/*之類的pattern時才有值,其他時候都返回null。
3.在servlet的url-pattern被設置為*.xx之類的pattern時,getServletPath()返回的是getRequestURI()去掉前面ContextPath的剩余部分。