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:\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
/testPath- req.getRealPath("file.upload") :
- F:\tomcat\apache-tomcat-7.0.47\webapps\testPath\file.upload
- req.getSession().getServletContext().getResource("/") :
- jndi:/localhost/testPath/index.jsp
- req.getSession.getServletContext().getRealPath("") :
- F:\tomcat\apache-tomcat-7.0.47\webapps\testPath
- 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:\tomcat\apache-tomcat-7.0.47\webapps\ROOT\file.upload
- req.getSession().getServletContext().getResource("/") :
- jndi:/localhost/index.jsp
- req.getSession.getServletContext().getRealPath("") :
- F:\tomcat\apache-tomcat-7.0.47\webapps\ROOT
- 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/
request 路径随笔的更多相关文章
- 超全面的JavaWeb笔记day10<Response&Request&路径&编码>
1.Response 2.Request 3.路径 4.编码 请求响应流程图 response 1.response概述 response是Servlet.service方法的一个参数,类型为java ...
- 项目vue2.0仿外卖APP(二)
vue-cli开启vue.js项目 github地址:https://github.com/vuejs/vue-cli Vue.js开发利器vue-cli,是vue的脚手架工具. 在工地上,脚手架是工 ...
- Python之Web框架Django
Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址 Python 下载地址:https://www.pyt ...
- OWIN的理解和实践(三) –Middleware开发入门
上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的Middleware,本篇我们就着重介绍下Middleware的开发 ...
- 【jmeter】WebSerivice测试
WebSerivice测试计划的取样器有两种方式:HTTP请求.SOAP/XML-RPC Request. 1. 测试计划 启动JMeter,点击测试计划节点上,重命名测试计划:WebserviceT ...
- Day17 表单验证、滚动菜单、WEB框架
一.表单验证的两种实现方式 1.DOM绑定 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- Python 一路走来 Django
Web 框架 (本质:socket) Python web框架 自己实现socket - Tornado 基于wsgi ...
- Middleware开发入门
Middleware开发入门 上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的Middleware,本篇我们就着重介 ...
- Spring @Pathvariable
先记录下@PathVariable的用法吧: @RequestMapping("/demo/{id}") @ResponseBody public User getUser(@Pa ...
随机推荐
- redistribute and Suboptimal routing
重分发和次优路由 基础环境 拓扑: 分别配置好基本的环境,包含ip地址,路由协议的启用,得到他们的路由表分别为 R1: R2: R3: R4: 1. 在R1上将eigrp和OSPF进行双向重 ...
- 8个3D视觉效果的HTML5动画欣赏
现在的网页中应用了越来越多的3D应用,特别是基于HTML5 Canvas的动画特效,让用户有一种非常震撼的视觉体验.本文收集了8个非常炫酷的3D视觉效果的HTML5动画,都有源代码分享,你可以学习你感 ...
- java中Map,List与Set的区别
Set,List,Map的区别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放类 ...
- android Timer and TImerTask
android Timer and TImerTask Caused by: java.lang.IllegalStateException: TimerTask is scheduled alrea ...
- Linux下iftop网卡流量监控使用
在类linux系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop. 一.i ...
- Silverlight动画学习笔记(三):缓动函数
(一)定义: 缓动函数:可以将自定义算术公式应用于动画 (二)为什么要用缓动函数: 您可能希望某一对象逼真地弹回或其行为像弹簧一样.您可以使用关键帧动画甚至 From/To/By 动画来大致模拟这些效 ...
- Z-BlogPHP 安装出现 (8) Undefined offset: 6 解决方法
有些cp面板的空间会在每个网页头部和页脚增加两个调用的文件,导致zblogPHP安装出错:(8) Undefined offset: 6 主要国外的主机中PHP配置文件两个选项auto_prepend ...
- C#中的interface、virtual和abstract
一.Abstract: abstract方法必须在abstarct类中声明,没有默认实现,子类必须实现. 二.Virtual: virtual方法可以声明在abstract类中,也可以声明在非abst ...
- ActiveMQ之JMSReplyTo
在下面的例子中,首先创建两个Queue,发送者给一个Queue发送,接收者接收到消息之后给另一个Queue回复一个Message,然后再创建一个消费者来接受所回复的消息.import javax.jm ...
- SQLserver利用系统时间生成“2015-11-30 00:00:00.000”类型的时间
select getdate() ---当前时间:2015-12-18 10:20:24.097 -------------------建立测试表 Create Table #Test ( ID IN ...