java web css绝对路径_JavaWeb中的相对绝对路径

1.什么是绝对路径?

相对于当前WEB应用的根路径的路径,即任何路径都必须带上contextPath。contextPath可以从request或者application的getContextPath()方法获取。

2.JavaWeb开发中的“/”到底代表什么?

(1)若“/”需交由Servlet容器处理,则它代表当前Web应用的根路径:http://localhost:8080/[contextPath]/

请求转发时:request.getRequestDispatcher("/path/c.jsp").forward(request, response);

web.xml文件中映射Servlet访问路径:

TestServlet

/TestServlet

各种定制标签中的 /

(2)若“/”需交由浏览器处理,则其代表Web站点根路径:http://localhost:8080/

超链接: To B page

表单中的action:

做请求重定向的时候:response.sendRedirect("/a.jsp")

3. jsp/html页面中的路径

页面中使用路径的常用方式如下:

(1).当前应用的根路径+静态资源的相对路径:

浏览器解析时会将”/”解析为服务器。如果不加当前应用的根路径,有可能会错误地把static当作应用名,取决于部署时path的设置。所以最好统一添加应用的根路径。

获取当前应用的根路径:

EL表达式:${pageContext.request.contextPath};

JSP:,若工程文件就是在根目录下,通过request.getContextPath()返回的字符串为空。

(2)当前应用的绝对路径+静态资源的相对路径:

StringappContext=request.getContextPath();//获取当前应用的根路径构建当前应用的绝对路径(/appName)StringbasePath=request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+appContext ;//将basePath存入pageContext中,将来用EL表达式读取

pageContext.setAttribute("basePath",basePath);%>

缺点:每个请求前都要加${pageScope.basePath}

(3)利用标签

默认情况下,页面中相对路径的请求都是相对于当前页面的url发出的;如果当前页面存在标签,则请求是相对中设定的值。

StringappContext=request.getContextPath();//获得当前应用的根路径StringbasePath=request.getScheme()+"://"+request.getServerName()+ ":" +request.getServerPort()+appContext+ "/";%>

">

Login

缺点: 对于被包含的文件依然无效。

注意:第5行中最后加上了反斜杠,表明给base标签的值是一个目录,否则base标签将不起作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值