1.Servlet路径
在Web.xml文件中配置映射路径时Servlet的访问路径要么以“/”开头,要么以“*”开头,但是在Servlet中,现在很少使用“*”开头,在后面将要学习的过滤器中会使用它来匹配要过滤的资源
2.请求转发(请求包含)
a.以“/”开头:
相对当前项目路径,即:http://localhost:8080/项目名,例如:request.getRequestDispatcher(“/BServlet”)表示转发或包含路径为http://localhost:8080/项目名/BServlet的Servlet。
注意:如果访问的是WEB-INF下面的资源一定要在转发前加上 WEB-INF,不然会报404.
例如转发到:result.jsp页面
req.getRequestDispatcher("WEB-INF/jsp/result.jsp").forward(req, resp);
b.不以“/”开头:
相对当前Servlet的路径,例如:当前Servlet是AServlet,访问它的路径为http://localhost:8080/项目名/servlet/AServlet,那么request.getRequestDispatcher(“BServlet”)就相当于,转发或包含路径为http://localhost:8080/项目名/servlet/BServlet的Servlet。
3.重定向路径
重定向路径是客户端路径,只要是客户端路径都需要加上项目名,否则找不到将要访问的资源。
l路径要以“/”开头
以“/”开头,相对当前主机,即http://localhost:8080,所以路径上要加上项目名,如:response.sendRedirect(“/Example/Servlet”),对应的路径就是:http://localhost:8080/Example/Servlet。
4.页面表单和超链接路径
页面中的超链接和表单路径和重定向路径一样,也是客户端路径,因此路径中要加上项目名。例如:
<form action="/Example/AServlet"></form>
<a href="/Example/AServlet"></a>
5.ServletContext获取资源路径
ServletContext获取资源路径使用的方式是getRealPath(String path),该方法获取的是应用发布到Tomcat安装目录下的webapps目录中的根目录,如:servletContext.getRealPath(“/”)返回的路径就是D:\apache-tomcat-7.0.42\webapps\项目名