request.getRealPath_java response

request.getRealPath_java responseequest.getRealPath()这个方法已经不推荐使用了,代替方法是:request.getSession().getServletContext().getRealPath()从Request对象中可以获取各种路径信息,以下例子:假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下Stringpath=requ…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

equest.getRealPath() 这个方法已经不推荐使用了,代替方法是:

request.getSession().getServletContext().getRealPath()

从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+”
“);

out.println(“basePath:”+basePath+”
“);

out.println(“remoteAddr:”+remoteAddress+”
“);

out.println(“servletPath:”+servletPath+”
“);

out.println(“realPath:”+realPath+”
“);

out.println(“remoteUser:”+remoteUser+”
“);

out.println(“requestURI:”+requestURI+”
“);

结果:

path:/WebDemo

basePath:http://localhost:8683/WebDemo/

remoteAddr:127.0.0.1servletPath:/index.jsp

realPath:D:\apache-tomcat-6.0.13\webapps\WebDemo\

remoteUser:nullrequestURI:/WebDemo/index.jsp

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

参考servlet中的接口:

request.getScheme();

返回的协议名称,默认是http

request.getServerName()

返回的是你浏览器中显示的主机名,你自己试一下就知道了

getServerPort()

获取服务器端口号

例如:

TestServlet

/servlet/test/*

dwr为工程名

http://localhost:8080/dwr/servlet/test/joejoe1991/a.html?name=test

getPathInfo() 返回的仍然是:

“/joejoe1991/a.html” ,而并不包括后面的”?name=test”;

在servlet里用this.getServletContect().getRealPath()

在struts里用this.getServlet().getServletContext().getRealPath()

在Action里用ServletActionContext.getRequest().getRealPath();

以上三个获得都是当前运行文件在服务器上的绝对路径

从request获取各种路径总结

request.getRealPath(“url”); // 虚拟目录映射为实际目录

request.getRealPath(“./”);    // 网页所在的目录

request.getRealPath(“../”); // 网页所在目录的上一层目录

request.getContextPath();    // 应用的web目录的名称

如http://localhost:7001/bookStore/

/bookStore/ => [contextPath] (request.getContextPath())

获取Web项目的全路径

String strDirPath = request.getSession().getServletContext().getRealPath(“/”);

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:request.getRequestURI()

结果:/TEST/test.jsp

(2)得到工程名:request.getContextPath()

结果:/TEST

(3)得到当前页面所在目录下全名称:request.getServletPath()

结果:如果页面在jsp目录下 /TEST/jsp/test.jsp

(4)得到页面所在服务器的全路径:application.getRealPath(“页面.jsp”)

结果:D:\resin\webapps\TEST\test.jsp

(5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();

结果:D:\resin\webapps\TEST

2.在类中取得路径:

(1)类的绝对路径:Class.class.getClass().getResource(“/”).getPath()

结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/

(2)得到工程的路径:System.getProperty(“user.dir”)

结果:D:\TEST

3.在Servlet中取得路径:

(1)得到工程目录:request.getSession().getServletContext().getRealPath(“”) 参数可具体到包名。

结果:E:\Tomcat\webapps\TEST

(2)得到IE地址栏地址:request.getRequestURL()

结果:http://localhost:8080/TEST/test

(3)得到相对地址:request.getRequestURI()

结果:/TEST/test

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191759.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringApplication_一个阶段结束

    SpringApplication_一个阶段结束1、SpringApplication正常结束SpringBoot2.0为SpringApplication正常结束新引入了SpringApplicationRunListener的生命周期,即running(ConfigurableApplicationContext),该方法在Spring应用上下文中已准备,并且CommandLineRunner和ApplicationRunnerBean均已执行完毕。EventPublishingRunListener作为SpringApplicationRu

    2022年9月8日
    0
  • a标签,下划线的操作

    a标签,下划线的操作a标签当如下时,不显示下划线<a>没链接的a标签</a>这种情况如何添加下划线呢值 描述none 默认。定义标准的文本。underline 定义文本下的一条线。overline 定义文本上的一条线。line-through 定义穿过文本下的一条线。blink 定义闪烁的文本。inherit 规定应该从父元素继承text-decoration属性的值。text-decoration:underline;a标签如下,会正常显示<ahref=”ht

    2022年5月12日
    77
  • Transformer模型详解

    Transformer模型详解转载请注明出处,原文地址简介AttentionIsAllYouNeed是一篇Google提出的将Attention思想发挥到极致的论文。这篇论文中提出一个全新的模型,叫Transformer,抛弃了以往深度学习任务里面使用到的CNN和RNN,目前大热的Bert就是基于Transformer构建的,这个模型广泛应用于NLP领域,例如机器翻译,问答系统,文本摘要和语音识别等等方向…

    2022年5月15日
    35
  • 云 云计算_openapi开发接口

    云 云计算_openapi开发接口http://www.cnblogs.com/skyme/p/3435565.html介绍OpenAPI即开放API,也称开放平台。所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(ApplicationProgrammingInterface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所

    2022年9月27日
    0
  • 自动构建(CICD)

    自动构建(CICD)Docker、Kubernetes的CICD实现思路Jenkins是一个比较流行的持续集成工具GitLab是存储镜像的镜像仓库由客户端将代码push推送到git仓库,gitlab上配置了一个webHook的东西可以触发Jenkins的构建。进入到Jenkins虚线范围内,它所做的事情非常多,从mvn构建代码,对代码进行静态分析,做单元测试,测试通过之后就可以build镜像,镜像构建成功后…

    2022年5月3日
    64
  • 导弹防御系统(dfs+最长上升子序列)

    导弹防御系统(dfs+最长上升子序列)原题连接/为了对抗附近恶意国家的威胁,R 国更新了他们的导弹防御系统。一套防御系统的导弹拦截高度要么一直 严格单调 上升要么一直 严格单调 下降。例如,一套系统先后拦截了高度为 3 和高度为 4 的两发导弹,那么接下来该系统就只能拦截高度大于 4 的导弹。给定即将袭来的一系列导弹的高度,请你求出至少需要多少套防御系统,就可以将它们全部击落。输入格式输入包含多组测试用例。对于每个测试用例,第一行包含整数 n,表示来袭导弹数量。第二行包含 n 个不同的整数,表示每个导弹的高度。当输入测试用例

    2022年8月8日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号