jsp Request获取url信息的各种方法对比

时间:2016.10.16 发布人:ysknj

jsp Request获取url信息的各种方法对比

已解决问题

谷歌ysknj用户在2016.10.16提交了关于“秦始皇jsp Request获取url信息的各种方法对比”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-10-22T21:24:04。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:jiyang6688  

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

假设请求的页面是室冲知湖氢广师吗存降斤index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路再落攻起径信息如下

Stringpath=request.getContextPat问编入好切减尼王术句历h();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+requ治宽队振危还妒急置效自est.getSer孩书沿若儿行板刻verPort()+path+"/";String官十remoteAddress=request.getRemoteAddr();StringservletPath=req假维井械uest.getServletPath();S须屋tringrealPath=request.getRealPath("/");StringremoteUser=request.getRemoteU止于括书轮故气ser();StringrequestURI=request.getRequestURI();out.pri筋ntln("path:"+path+"<br>");out.println("basePath:"+basePath+"<br>");out交盾者手己值径眼府.println("remoteA圆宽由操位满还ddr:"+remoteAddress+"<br>");out.pr识爱民浓研宽intln("servletPath:"+servletPath+"<br>");out.println("realPat海歌职掉h:"+realPath+"<br>");out.刑林振养席充机支车println("remoteUser:"+remoteUser+"<br>");out.println("requestURI:"+requestURI+"<br>");

结果:

path:/WebDemobasePath:http://localhost:8683/Web元害洲心丝投级热通Demo/remoteAd缺永物旧质胡溶dr:127.0.0.1servletPath府河多活触甚然优解千:/index.jsprealPath:D:\apache-tomcat-6.0.13\webapps\WebDemo\remoteUser:**llrequestURI:/WebDemo/index.jsp

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

从request获取各种路径总结:

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

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

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

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

可以使用

ServletContext.getRealPath(j**a.lang.String)instead.request.getSession().getServletContext().getRealPath()得到工程文件的实际物理路径,也就是绝对地址//Returnsthepartofthisrequest'sURLfromtheprotocolnameuptothequerystringinthefirstlineoftheh**TTPrequest//eg./manage/editExam.domethod=goExamSet&type=UStringurl=request.getRequestURI();//ThereturnedURLcontainsaprotocol,servername,port**mber,andserverpath,butitdoesnotincludequerystringparameters//eg.http://127.0.0.1:8080/manage/editExam.domethod=goExamSet&type=UStringBufferurl_buffer=request.getRequestURL();

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

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

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

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

StringqueryString=request.getQueryString();ringfullPath=url+queryString;//或者是url_buffer.toString()+queryString;

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