javaweb瀹炵幇涓や釜椤甸潰璺宠浆 (javaweb鎬庝箞瀹屾垚椤甸潰璺宠浆)

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所在路径,也就是项目根目录下。