下面小编就为大家带来一篇jsp Request获取url信息的各种方法对比。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

从Request对象中可以获取各种路径信息,以下例子: 

假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下 

String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
String remoteAddress=request.getRemoteAddr(); 
String servletPath=request.getServletPath(); 
String realPath=request.getRealPath("/"); 
String remoteUser=request.getRemoteUser(); 
String requestURI=request.getRequestURI(); 
out.println("path:"+path+"<br>"); 
out.println("basePath:"+basePath+"<br>"); 
out.println("remoteAddr:"+remoteAddress+"<br>"); 
out.println("servletPath:"+servletPath+"<br>"); 
out.println("realPath:"+realPath+"<br>"); 
out.println("remoteUser:"+remoteUser+"<br>"); 
out.println("requestURI:"+requestURI+"<br>"); 

结果: 

path:/WebDemo 
basePath:http://localhost:8683/WebDemo/ 
remoteAddr:127.0.0.1 
servletPath:/index.jsp 
realPath:D:\apache-tomcat-6.0.13\webapps\WebDemo\ 
remoteUser:null 
requestURI:/WebDemo/index.jsp 

从上不难看出request各个对应方法所代表的含义 

从request获取各种路径总结: 

request.getRealPath("url");//虚拟目录映射为实际目录 
request.getRealPath("./");//网页所在的目录 
request.getRealPath("../");//网页所在目录的上一层目录 

假定你的web application(web应用)名称为news,你的浏览器中输入请求路径:http://localhost:8080/uploading/load.jsp 

request.getContextPath() => /uploading 
request.getServletPath() => /load.jsp 
request.getRequestURL() => http://localhost:8080/uploading/load.jsp 
request.getRealPath("/") =>  F:\learn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\uploading\ 

现在request.getRealPath("/") 这个方法已经不推荐使用了 

可以使用 

ServletContext.getRealPath(java.lang.String) instead. 
request.getSession().getServletContext().getRealPath() 得到工程文件的实际物理路径,也就是绝对地址 
//Returns the part of this request's URL from the protocol name up to the query string in the first line of the HTTP request 
// eg./manage/editExam.domethod=goExamSet&type=U 
String url = request.getRequestURI();  
//The returned URL contains a protocol, server name, port number, and server path, but it does not include query string parameters 
//eg. http://127.0.0.1:8080/manage/editExam.domethod=goExamSet&type=U 
StringBuffer url_buffer = request.getRequestURL(); 

HttpServletRequest 的这两种方法都只能得到不包含参数的请求url,区别如下: 

1 前者返回相对路径,后者返回完整路径 

2 前者返回string ,后者返回stringbuffer 

得到完整请求url可以通过如下方法,getQueryString()得到的是url后面的参数串,和前者相加就是带参数的请求路径了 

 String queryString = request.getQueryString(); 
ring fullPath = url + queryString;  // 或者是url_buffer.toString()+queryString; 

以上就是小编为大家带来的jsp Request获取url信息的各种方法对比的全部内容了,希望对大家有所帮助,多多支持爱安网~

最新资讯
网易午后涨幅扩大至11% 股价创历史新高

网易午后涨幅扩大至11

网易午后大幅走高,股价高见198.2港元,市值6817亿港元。
里昂:腾讯目标价上调14.68%至820港元 给予买入评级

里昂:腾讯目标价上调14

里昂发布研究报告,将腾讯目标价由715港元上调14.68%至8
消息称韩国SK集团寻求与吉利设立氢能合资公司 百度也可能加入

消息称韩国SK集团寻求

据MoneyToday消息,韩国SK集团寻求与吉利设立氢能合资公
2021年上海将新增1万个公共充电桩

2021年上海将新增1万

关于《2021年上海市为民办实事项目》中提出,在2021年,上
面临疫情、经济放缓和反垄断审查,Facebook仍能延续增长势头?

面临疫情、经济放缓和

Facebook的广告收入已经实现连续几个季度井喷式增长,使
苹果Q1营收有望突破千亿美元大关 华尔街看好其长期增长潜力

苹果Q1营收有望突破千

市场预期苹果Q1营收有望首次突破千亿美元大关,将同比增
最新文章
JSP动态网页开发技术概述

JSP动态网页开发技术

这篇文章主要介绍了JSP动态网页开发技术概述,文中通过
JSP动态网页开发原理详解

JSP动态网页开发原理

这篇文章主要介绍了JSP动态网页开发原理详解,文中通过
jsp学习之scriptlet的使用方法详解

jsp学习之scriptlet的

这篇文章主要介绍了jsp学习之scriptlet的使用方法详解
JSP出现中文乱码问题解决方法详解

JSP出现中文乱码问题

这篇文章主要介绍了JSP出现中文乱码问题解决方法详解,
jsp网页实现贪吃蛇小游戏

jsp网页实现贪吃蛇小

这篇文章主要为大家详细介绍了jsp网页实现贪吃蛇小游
jsp实现用户自动登录功能

jsp实现用户自动登录

这篇文章主要为大家详细介绍了jsp实现用户自动登录功