博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
request 路径随笔
阅读量:5970 次
发布时间:2019-06-19

本文共 3709 字,大约阅读时间需要 12 分钟。

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:\tomcat\apache-tomcat-7.0.47\webapps\testPath
//根目录的真实路径
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 /testPathreq.getRealPath("file.upload") : 				 F:\tomcat\apache-tomcat-7.0.47\webapps\testPath\file.uploadreq.getSession().getServletContext().getResource("/") : 				 jndi:/localhost/testPath/index.jspreq.getSession.getServletContext().getRealPath("") :				 F:\tomcat\apache-tomcat-7.0.47\webapps\testPathreq.getSession().getServletContext().getContextPath() :				 /testPathreq.getRequestURL() :				 http://192.168.10.64:8080/testPath/test.doreq.getRequestURI() :				 /testPath/test.doreq.getAuthType() :				 nullreq.getMethod() : :				 GETreq.getQueryString() :				 nullreq.getContentType() :				 nullreq.getContextPath() :				 /testPathreq.getContentLength() :				 -1req.getLocale()  :				 zh_CNreq.getLocalAddr() :				 192.168.10.64req.getLocalName() :				 c-PCreq.getLocalPort() :				 8080req.getRemoteAddr() :				 192.168.10.64req.getRemoteHost() :				 192.168.10.64req.getRemotePort() :				 61783req.getRemoteUser() :				 nullreq.getScheme() :				 httpreq.getServerName() :				 192.168.10.64req.getServerPort() :				 8080req.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:\tomcat\apache-tomcat-7.0.47\webapps\ROOT\file.uploadreq.getSession().getServletContext().getResource("/") : 				 jndi:/localhost/index.jspreq.getSession.getServletContext().getRealPath("") :				 F:\tomcat\apache-tomcat-7.0.47\webapps\ROOTreq.getSession().getServletContext().getContextPath() :				 req.getRequestURL() :				 http://192.168.10.64:8080/test.doreq.getRequestURI() :				 /test.doreq.getAuthType() :				 nullreq.getMethod() : :				 GETreq.getQueryString() :				 nullreq.getContentType() :				 nullreq.getContextPath() :				 req.getContentLength() :				 -1req.getLocale()  :				 zh_CNreq.getLocalAddr() :				 192.168.10.64req.getLocalName() :				 c-PCreq.getLocalPort() :				 8080req.getRemoteAddr() :				 192.168.10.64req.getRemoteHost() :				 192.168.10.64req.getRemotePort() :				 61836req.getRemoteUser() :				 nullreq.getScheme() :				 httpreq.getServerName() :				 192.168.10.64req.getServerPort() :				 8080req.getServletPath() :				 /test.do req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/" :				 http://192.168.10.64:8080/

转载地址:http://cywox.baihongyu.com/

你可能感兴趣的文章
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
Eclipse Java @Override 报错
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
mysql多实例实例化数据库
查看>>
javascript 操作DOM元素样式
查看>>
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
使用dotenv管理环境变量
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>