web工程servlet中的路径问题

web工程反斜杠(/)表示的意义:

反斜杠(/)在web工程中表示的是绝对路径。

web工程servlet中反斜杠两种情况下的表示含义:

(1)被html浏览器解析

如果路径是在html浏览器中被执行的,则反斜杠(/)表示的是:http://ip:port/

举例:

web工程servlet中的路径问题

启动tomcat,访问demo.html页面

web工程servlet中的路径问题

点击超链接,查看跳转地址:

web工程servlet中的路径问题

发现跳转后的地址缺少工程名称。

说明:因为反斜杠(/)在html浏览器被解析,所以反斜杠表示的是:http://ip:port/

所以跳转后的地址就是:http://ip:port/demo02.html。所以出现404错误。

 

(2)在服务器端被解析

如果路径是在服务器端被解析的,则反斜杠(/)表示的是:http://ip:port/工程名称/

举例:

  1. web.xml配置文件中的<url-pattern>的反斜杠(/)表示的就是http://ip:port/工程名称/
  2. ServletContext对象中的getRealPath("/")方法中的反斜杠表示的也是http://ip:port/工程名称/
  3. request.getRequestDispatcher("/")方法中的反斜杠表示的也是http://ip:port/工程名称/

web工程servlet中的路径问题

注意:重定向时候的反斜杠比较特殊。

response.sendRedirect("/")方法中的反斜杠表示的是http://ip:port/

这是由于重定向是服务器告诉浏览器,再次发送一次请求给服务器。路径是在html浏览器被解析的,所以反斜杠(/)表示的是http://ip:port/

web工程servlet中的路径问题

启动tomcat,访问如下:

web工程servlet中的路径问题

所以重定向时候,需要注意的是,首先要获取工程名称,然后在拼接上相应的路径。

web工程servlet中的路径问题

以上就是个人对servlet中路径的简单理解。