深入探究JavaWeb开发中的“/”含义

文章目录

    • 前言
    • 1. 绝对路径与绝对路径
    • 2. JavaWEB开发中的“/”代表什么?

前言

在JavaWeb开发中,常常涉及到关于路径的问题。例如请求的转发、重定向、超链接等等,都需要明确写出相对应的位置信息。在这个里面,常用到两种路径:绝对路径与相对路径

在这里先给出结论:在JavaWeb开发中,建议使用绝对路径。**使用相对路径可能会有问题, 但使用绝对路径肯定没有问题.**比如,在由Servlet转发到JSP页面时,此时,浏览器地址栏上显示的是Servlet的路径。如果该JSP页面中的超链接是相对于该JSP页面的地址,则可能会出现路径混乱的问题。

1. 绝对路径与绝对路径

绝对路径定义:在Web开发中,将相对于当前WEB应用的根路径的路径,称为绝对路径。即任何的路径都必须要带上contextPath

假设Web应用的项目名为helloworld,则有:

http://localhost:8989/helloworld/index.jsp  是绝对路径
而
http://localhost:8989/index.jsp不是绝对路径。
因为http://localhost:8989/helloworld是当前web应用helloworld的根路径。
总结下,绝对路径的基本样式为:
http://localhost:8989/contextPath(当前WEB应用的上下文路径)/xxx
  • 如何编写绝对路径?

在路径的前面加上contextPath路径即可。如超链接里面:

<a href = "TestServlet">to test</a>
    改为绝对路径为:
<a href = "<% request.getContextPath()%>"/TestServlet</a>

在重定向中,使用绝对路径的实现方法:

response.sendRedirect(request.getContextPath()+"/path/hello.jsp");

相对路径定义:默认从当前目录开始的目录路径称为相对路径。

2. JavaWEB开发中的“/”代表什么?

  • / 什么时候代表当前 WEB 应用的根目录?WEB应用的根路径为:http://localhost:8989/contextPath/

①:当请求转发时,“/”代表的是WEB应用的根目录

request.getRequestDispatcher("/path/index.jsp").forward(request,response);

②:在web.xml文件中映射Servlet访问路径时,“/”代表的是WEB应用的根目录


	HelloServlet
	/helloServlet

  • / 什么时候代表站点的根目录?WEB站点的根路径:http://localhost:8989/

① 超链接:

<a>  href="/TestServlet"> To B Page</a>

② 表单中的action

<form action = "/login.jsp">

③ 请求重定向的时候

response.sendRedirect("/a.jsp");
  • 总结:

若 / 需交由Servlet容器来处理,则/代表的是Web应用的根目录。

若 / 需交由浏览器来处理,则代表站点的根目录。

你可能感兴趣的:(深入探究实验室)