${pageContext.request.contextPath}的用法

${pageContext.request.contextPath}用于解决使用相对路径时出现的问题,它的作用是取出所部署项目的名字。

JavaWeb项目中,Jsp页面的form表单的action属性也常常会使用${pageContext.request.contextPath}来表示请求路径。form表单的action属性为:action="${pageContext.request.contextPath }/servlet/addBookServlet"。要理解这个请求地址,必须先了解web.xml【注意:web.xml必须放在WEB-INF文件夹下】的写法:

①完全匹配:以“/”开头,以字母(非“*”)结束${pageContext.request.contextPath}的用法

   如:上面提到的本项目中:<url-pattern>/servlet/addBookServlet</url-pattern>

②目录匹配:以“/”开头且以“/*”结尾

   如:<url-pattern>/test/*</url-pattern>

   <url-pattern>/*</url-pattern>

③扩展名匹配:以“*.”开头,以扩展名结束

   如:<url-pattern>*.do</url-pattern>

④“/”用来表明对应的Servlet为应用默认的Servlet。在这种情况下Servlet路径是请求的URI去掉上下文路径并且路径信息为null