getContextPath、getServletPath、getRequestURI,getRealPath的区别

简介: 假定你的web application 项目名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp  则执行下面向行代码后打印出如下结果: 1、 System.out.println(request.getContextPath()); //可返回站点的根路径。

 

假定你的web application 项目名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 

 

则执行下面向行代码后打印出如下结果: 
1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项目的名字 
打印结果:/news 

2、System.out.println(request.getServletPath()); 
打印结果:/main/list.jsp 

3、 System.out.println(request.getRequestURI()); 
打印结果:/news/main/list.jsp 

 

4、 System.out.println(request.getRealPath("/")); 

      request.getRealPath("/")已经不建议使用。

getRealPath();

返回一个字符串,包含一个给定虚拟路径的真实路径。

struts2中:

ServletContext ctx=ServletActionContext.getServletContext();

String path=ctx.getRealPath("/");
String path1=ctx.getRealPath("/files/view.jsp");

输出:path为D:\Javasoftware\apache-tomcat-7.0.70\apache-tomcat-7.0.70\webapps\struts2-1\

         path1为D:\Javasoftware\apache-tomcat-7.0.70\apache-tomcat-7.0.70\webapps\struts2-1\files\view.jsp

\files\view.jsp这部分就是虚拟路径

D:\Javasoftware\apache-tomcat-7.0.70\apache-tomcat-7.0.70\webapps\struts2-1\  为项目的绝对路径

 servlet中:

 

private ServletConfig  config;

public void init(ServletConfig config) throws ServletException {
this.config=config;}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

ServletContext ctx=config.getServletContext();
String temp=ctx.getRealPath("/");
}


打印结果:F:\Tomcat 6.0\webapps\news\test 

 

注:

URI=contextPath+servletPath

目录
相关文章
|
4月前
|
前端开发 JavaScript Java
获取Servlet中的request.getContextPath方法详解
获取Servlet中的request.getContextPath方法详解
|
5月前
|
Java
request.getcontextPath() 详解
request.getcontextPath() 详解
|
6月前
|
Dragonfly 安全 数据安全/隐私保护
什么是WPA3?与WPA2有啥区别?
【4月更文挑战第14天】
5011 2
什么是WPA3?与WPA2有啥区别?
|
6月前
|
JavaScript 前端开发 API
parent对象
parent对象是JavaScript中一个比较特殊的对象,它表示当前元素在其父元素中的相对位置。parent对象主要用于遍历和操作元素树,以及获取和设置元素的样式。 使用parent对
54 1
|
11月前
|
前端开发 Java Spring
方法参数相关属性params、@PathVariable和@RequestParam用法与区别
方法参数相关属性params、@PathVariable和@RequestParam用法与区别
93 0
|
敏捷开发 存储 数据可视化
aPaaS是什么(aPaaS与iPaaS的区别)
依题:aPaaS是什么?aPaaS与iPaaS二者之间的区别在哪?要想了解区别,首先得搞清概念,不然就是在耍流氓!下面本人就从概念到区别用大白话给你一次性讲清楚。
aPaaS是什么(aPaaS与iPaaS的区别)
|
云栖大会
aPaaS和iPaaS的区别
aPaaS和iPaaS的区别自制脑图
231 0
aPaaS和iPaaS的区别
|
数据安全/隐私保护
WindowManager.LayoutParams Flag 含义
WindowManager.LayoutParams Flag 含义
246 0