Java Web路径跳转

本文总结了JavaWeb中路径跳转的几种方式及其区别,包括根目录、当前目录的概念,以及请求重定向和转发中“/”所代表的不同含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近在学java web,感觉对于路径跳转这部分很容易混淆,所以专门实践测试了下,对此做个总结。

先把结论写在这里:


1. 根目录(/)

  • web.xml 文件中 “/” 代表项目根目录
  • 页面中链接的 “/” 代表服务器根目录
  • 请求重定向的 “/” 代表服务器根目录
  • 请求转发的 “/” 代表项目根目录

2. 当前目录

  • Servlet 请求重定向和转发的地址中当前路径为 web.xml 文件设置的 Servlet 映射路径
  • Filter (过滤器)请求重定向和转发的地址中当前路径为所匹配的过滤页面的路径


web.xml中”/”代表项目根目录:

web.xml

<web-app ...>
    ...
    <servlet-mapping>
        <servlet-name>ServletOne</servlet-name>
        <url-pattern>/servlet/ServletOne</url-pattern>
    </servlet-mapping>
    ...
</web-app>

其中 < url-pattern > 标签中的第一个”/”即代表项目根目录,也设定了 servlet 对于项目的映射地址。
项目以WebRoot目录为根目录,假如根目录下有 index.jsp 页面,在该页面中 < a >< form > 标签链接地址的当前目录即为根目录下,若要访问 ServletOne 则链接地址可以写为 “./servlet/ServletOne”“servlet/ServletOne” 再或 “/servlet/ServletOne”;
同理,在 ServletOne.java 页面里想跳转到 index.jsp 则地址可以写为 “../index.jsp”


页面中”/”代表服务器根目录:

index.jsp

...
<form action="/ServletTest/servlet/ServletOne" method="post">
...
</form>

...
<a href="/ServletTest/servlet/ServletOne">测试</a>
...

其中 < form >< a > 标签中的链接地址,第一个”/”代表的是服务器根目录。


请求重定向中”/”代表服务器根目录:

ServletOne.java

...
response.sendRedirect("/ServletTest/servlet/info.jsp");
...

其地址中第一个”/”代表服务器根目录。


请求转发中”/”代表项目根目录:

ServletOne.java

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

其地址中第一个”/”代表项目根目录,< jsp:forward > 结果相同。


Filter请求重定向和转发中当前路径为匹配过滤页面的路径:

web.xml

<web-app ...>
...
    <filter-mapping>
        ...
        <url-pattern>/index.jsp</url-pattern>
    </filter-mapping>
...
</web-app>

其中,过滤器中请求重定向和转发的当前路径为index.jsp所在路径,也就是项目根目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值