使用Servlet技术~路径-03
路径分为两种:相对路径 和 绝对路径,就像初中物理学的绝对静止和相对静止的意思差不多。
如图:
1、配置文件路径
对于web.xml, <!--url-pattern处必须以/开头,这里的/表示项目的根目录 -->例如:
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/servlet/TestServlet</url-pattern>
</servlet-mapping>
2、页面路径
src下面有个servlet包,包下面有个servlet名字叫做:HelloServlet
<!--使用相对路径访问HelloServlet -->
<!-- /servlet/HelloServlet:错误。 第一个/表示服务器的根目录 -->
<a href="servlet/HelloServlet">访问HelloServlet!</a><br>正确
<% String path = request.getContextPath(); %>
<!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录-->
<a href="<%=path%>/servlet/HelloServlet">访问HelloServlet!</a><br>正确
<!--表单中action的URL地址写法,与超链接方式完全相同。 -->
<a href="servlet/TestServlet">访问TestServlet,跳转到Test.jsp</a>
3、重定向或者转发的路径
//请求重定向方式跳转到test.jsp,当前路径是 项目名/servlet/
//response.sendRedirect("test.jsp");这样的话,是获取 servlet下面的test.jsp,因为不存在所以报错。
//使用request.getContextPath获得上下文对象
//response.sendRedirect(request.getContextPath()+"/test.jsp");
//服务器内部跳转,这里的斜线表示项目的根目录
//request.getRequestDispatcher("/test.jsp").forward(request, response);//相对路径
request.getRequestDispatcher("../test.jsp").forward(request, response);//绝对路径