• request 路径随笔


    1. 路劲可分为 绝对路径 和 相对路径

    2. 绝对路径 (开头带"/"

      前端: http://localhost:8080/myWebApp/user/login.jsp

         /myWebApp/user/login.jsp

      后端: /user/login.jsp

      这里可以看出一个区别, 其中"/"这个斜杠在前后端有着不同的意义:

      前端--> (表示) 服务器的根路径(例如:http://localhost:8080/)

      后端-->(表示) 应用的根路径 (例如: http://localhost:8080/yourWebAppName/)

    3. 相对路径 (开头不带"/")

         举个例子, 假如当前的路径是 http://localhost:8080/myWebApp/user/login.jsp

          那么这时候访问 “main.jsp”页面,即访问的是 http://localhost:8080/myWebApp/user/main.jsp

      也就是说,使用相对路径,那么访问的是 当前页面路径 所属 目录 下的文件路径

      这个特性无论是在前端 、 后端 都是一样的。

      在java中,无论是JSP或者Servlet , 都可以通过request这个对象获得requestURL( ) , 该方法返回当前所访问的页面的绝对路径的一个StringBuilder。

      应用服务器正是通过该路径来得到用户想要访问的页面路径。

      而一般使用forward时,就是通过修改该路径(无论当前指定的是绝对路径或者相对路径),来请求新的路径。

    Base path :scheme+serverName+serverport+requestContext): http://192.168.10.64:8080  //应用路径 
    req.reqeustURL(): http://192.168.10.64:8080/testPath/test.do   //请求路径
    req.requestURI(): /testPath/test.do    //请求路径(相对服务器根目录部分)
    req.getSession.getServletContext().getRealPath("")F:	omcatapache-tomcat-7.0.47webapps	estPath
    //根目录的真实路径
    req.getSession().getServletContext().getResource("/") : jndi:/localhost/testPath/index.jsp  //这里必须要‘/'开头
    req.getServletPath(): /test.do  //servlet的映射路径 
    req.getSession().getServletContext().getContextPath()   : /testPath   //应用上下文路径(标准的)
    req.getContextPath():    //请求request 所指向的应用上下文路径 一般为应用路径,即/AppName  (如果场景是把整个应用服务器当成一个应用,所以应用上下文为"/testPath")

    testPath App
    /testPath req.getRealPath("file.upload") : F: omcatapache-tomcat-7.0.47webapps estPathfile.upload req.getSession().getServletContext().getResource("/") : jndi:/localhost/testPath/index.jsp req.getSession.getServletContext().getRealPath("") : F: omcatapache-tomcat-7.0.47webapps estPath req.getSession().getServletContext().getContextPath() : /testPath req.getRequestURL() : http://192.168.10.64:8080/testPath/test.do req.getRequestURI() : /testPath/test.do req.getAuthType() : null req.getMethod() : : GET req.getQueryString() : null req.getContentType() : null req.getContextPath() : /testPath req.getContentLength() : -1 req.getLocale() : zh_CN req.getLocalAddr() : 192.168.10.64 req.getLocalName() : c-PC req.getLocalPort() : 8080 req.getRemoteAddr() : 192.168.10.64 req.getRemoteHost() : 192.168.10.64 req.getRemotePort() : 61783 req.getRemoteUser() : null req.getScheme() : http req.getServerName() : 192.168.10.64 req.getServerPort() : 8080 req.getServletPath() : /test.do /testPath req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/" : http://192.168.10.64:8080/testPath/

    ROOT

    req.getContextPath() :
    				 ""
    req.getRealPath("file.upload") : 
    				 F:	omcatapache-tomcat-7.0.47webappsROOTfile.upload
    req.getSession().getServletContext().getResource("/") : 
    				 jndi:/localhost/index.jsp
    req.getSession.getServletContext().getRealPath("") :
    				 F:	omcatapache-tomcat-7.0.47webappsROOT
    req.getSession().getServletContext().getContextPath() :
    				 
    req.getRequestURL() :
    				 http://192.168.10.64:8080/test.do
    req.getRequestURI() :
    				 /test.do
    req.getAuthType() :
    				 null
    req.getMethod() : :
    				 GET
    req.getQueryString() :
    				 null
    req.getContentType() :
    				 null
    req.getContextPath() :
    				 
    req.getContentLength() :
    				 -1
    req.getLocale()  :
    				 zh_CN
    req.getLocalAddr() :
    				 192.168.10.64
    req.getLocalName() :
    				 c-PC
    req.getLocalPort() :
    				 8080
    req.getRemoteAddr() :
    				 192.168.10.64
    req.getRemoteHost() :
    				 192.168.10.64
    req.getRemotePort() :
    				 61836
    req.getRemoteUser() :
    				 null
    req.getScheme() :
    				 http
    req.getServerName() :
    				 192.168.10.64
    req.getServerPort() :
    				 8080
    req.getServletPath() :
    				 /test.do
    
     req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/" :
    				 http://192.168.10.64:8080/
  • 相关阅读:
    移动端Web 关于单位rem的使用小结
    psp工具需求分析
    c#制作计算器全过程
    需求分析
    为石家庄的蓝天发的第一篇博文
    ASP.NET Core 应用发布与部署指南
    开博有感
    准备开始添加博客
    深挖UITableViewCell-编辑多选模式下,引发的深思
    AFNetworking 报错3840...
  • 原文地址:https://www.cnblogs.com/mjorcen/p/3467817.html
Copyright © 2020-2023  润新知