zoukankan      html  css  js  c++  java
  • 相对路径和绝对路径的理解

    普通页面中的跳转

    假设当前页面的路径为:http://localhost:8080/projectname/index.jsp,在页面有个表格,设置表格提交的跳转路径就有相对路径和绝对路径两种方式:

    相对路径跳转 action="nextpage.jsp": 表示跳转到路径:http://localhost:8080/projectname/nextpage.jsp。

    如果不是以"/"开始的,则表示该请求是相对于当前html路径。

    绝对路径跳转 action="/nextpage.jsp": 表示跳转到路径:http://localhost:8080/nextpage.jsp。

    相对于网站根目录可以用"/"开始 (根目录是指服务器的根目录,不是你项目的根目录)

    Servlet中的路径跳转:

    假设Servlet的路径为:http://localhost:808o/projectname/servlet/AjaxMailCheckServlet(web.xml中Servlet标签中url-pattern下生成的虚拟路径),现在要在Servelt中做逻辑判断以后跳转,那么就有相对路径和绝对路径两种跳转方式:

    相对路径跳转,表示相对于当前Servlet路径。例如:response.sendRedircet("nextpage.jsp")表示转发到:http://localhost:8081/projectname/servlet/nextpage.jsp。
    绝对路径跳转,以"/"开头,表示相对于整个项目根目录下的路径,例如response.sendRedircet("/newsDetailList.jsp")表示转发到:http://localhost:8081/newsDetailList.jsp。

    绝对路径跳转是完全相同的,不会因为是在Servlet中跳转而受到影响。
    相对路径跳转则有了差异:

    http://localhost:8080/projectname/nextpage.jsp/

    http://localhost:8081/project/servlet/nextpage.jsp。在Servlet的路径中多了一层servlet路径。多出这个是因为web.xml中的虚拟路径引起的,读者仔细观察就能发现。其实相对路径跳转的规则依旧适用。

    同样的,过滤器,监听器路径生成的机制都跟Servlet类似,如果在过滤器,监听器中有页面跳转的话,如果用相对路径也容易出现相同的问题。

    我们都只是茫茫星辰中的一粒沙。
  • 相关阅读:
    ASP.NET MVC布局
    C#微信扫码支付Demo
    ASP.NET MVC用户登录(Memcache存储用户登录信息)
    Memcached分布式缓存快速入门
    Log4Net日志配置
    ASP.NET MVC自定义异常处理
    Spring.Net快速入门:控制翻转、依赖注入、面向切面编程
    C#微信公众号开发入门教程
    APS.NET MVC4生成解析二维码简单Demo
    Entity Framwork学习笔记
  • 原文地址:https://www.cnblogs.com/yjp372928571/p/10895546.html
Copyright © 2011-2022 走看看