servlet和jsp路径

servletjsp路径

设当前应用路径为war
1.
jsp中的“/”表示的根为“ip”,不包含WAR路径
2.
servlet中以forward方式使用的“/”表示的根为“ip/war/”,包含了WAR路径
3.
servlet中以sendRedirect方式使用的“/”表示的根为ip,不包含WAR路径
4.
servlet中以forward方式跳转,则浏览器的地址栏仍然为此servlet,不会改变
5.
servlet中以sendRedirect方式跳转,则浏览器的地址栏改变为目的路径
6.
相对路径的确定是以浏览器的地址栏显示的路径为基准的,而非具体的目录结构,所以
   
跳转到同目录下的某个页面使用<a href="文件名">link</a>这种方式不是永久成立的
   
(做asp的人不要惊讶,这里说的jspservlet :)
7.
为了避免jspjspservletjspforward方式跳转,sendRedirect跳转产生的路径问题,
   
对于jsp和使用sendRedirect跳转的servlet,采用直接使用带
   
容器路径[String request.getContextPath()]的绝对路径就可以彻底解决,即:
     1
<%
           String contextPath = request.getContextPath();
           String url = contextPath + "/user/login.jsp";
        %>
       
        <a href="<%=url%>"> login</a>
    2
....
       String contextPath = request.getContextPath();
       String targetPath = contextPath + "/user/login.jsp";
       RequestDispatcher rd = request.getRequestDispatcher(targetPath);
       rd.forward(request, response);
       ......

   
对于使用forward跳转的servlet,则不要加容器路径,否则就重复出现 容器路径,原因参见 2

8.
如果使用的“../”过多也不会出现严重问题,“../”最多使链接到达“ip/”
9.
另外,在使用
        <jsp:include page = "url" flush="true"/>
        <%@ include file="url" %>
        <%@ page errorPage = "url" %>
时,
   
这里url使用的“/”表示的根为“ip/war/”,包含了WAR路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值