this.getServletContext().getRealPath("") 和 this.getServletConfig().getInitParameter("action")

this.getServletContext().getRealPath("") 和 this.getServletConfig().getInitParameter("action"),第1张

thisgetServletContext()getRealPath("") ;获取web站点在硬盘中的绝对路径

thisgetServletConfig()getInitParameter("action");获取webxml文件中名称为“action”的参数值

import javaxservletServletContext;

import javaxservlet>

使用JAVA后台代码取得WEBROOT物理路径,可以有如下两种方式:

1、使用JSP Servlet取得WEB根路径可以用requestgetContextPath(),相对路径requestgetSession()getServletContext()getRealPath("/"),它们可以使用我们很容易取得根路径。

2、如果使用了spring, 在WEB-INF/webxml中,创建一个webAppRootKey的param,指定一个值(默认为webapproot)作为键值,然后通过Listener,或者Filter,或者Servlet执行String webAppRootKey = getServletContext()getRealPath("/"); 并将webAppRootKey对应的webapproot分别作为Key,Value写到System Properties系统属性中。之后在程序中通过SystemgetProperty("webapproot")来获得WebRoot的物理路径。

具体示例代码如下:

webxml

<xml version="10" encoding="UTF-8">

<web-app version="24"

xmlns=">

作用

1、可以读取全局配置参数。

2、可以搜索当前工程目录下面的资源文件。

3、可以获取当前工程名字。

用法

1、ServletContext对象获取

thisgetServletContext();

thisgetServletConfig()getServletContext();

2、添加属性:setAttribute(String name, Object obj);

3、得到值:getAttribute(String name),这个方法返回Object

4、删除属性:removeAttribute(String name)

扩展资料

实例

public void doGet(>

PrintWriter out = responsegetWriter();ServletContext servletContext = thisgetServletContext();

ServletContext servletContext2 = thisgetServletConfig()getServletContext();    servletContextsetAttribute("name", "小明");outprintln("将 name=小明  写入了ServletContext");}

注意

存在ServletContext中的数据在服务器中会长时间,就会占用很多内存,因此在使用ServletContext时,最好不要往里面添加过大的数据。

在java中获得文件的路径在我们做上传文件 *** 作时是不可避免的。

web 上运行

1:thisgetClass()getClassLoader()getResource("/")getPath();

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/

SystemgetProperty("userdir");

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 项目的绝对路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar

2:thisgetClass()getResource("/")getPath();

thisgetClass()getResource("")getPath(); 得到的是当前类 文件的URI目录。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/com/jebel/helper/

thisgetClass()getResource("")getPath(); X 不 能运行

3:ThreadcurrentThread()getContextClassLoader()getResource("/")getPath()

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 ClassPath的绝对URI路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 项目的绝对路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar

在本地运行中

1:thisgetClass()getClassLoader()getResource("")getPath();

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

thisgetClass()getClassLoader()getResource("")getPath(); X 不 能运行

2:thisgetClass()getResource("")getPath();

thisgetClass()getResource("")getPath(); 得到的是当前类 文件的URI目录。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/

/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的绝对URI路径。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

3:ThreadcurrentThread()getContextClassLoader()getResource("")getPath()

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 ClassPath的绝对URI路径。。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

ThreadcurrentThread()getContextClassLoader()getResource("/")getPath() X 不 能运行

最后

在Web应用程序中,我们一般通过ServletContextgetRealPath("/")方法得到Web应用程序的根目录的绝对路径。

还有requestgetContextPath(); 在Weblogic中要用requestgetServletContext()getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。

以上就是关于this.getServletContext().getRealPath("") 和 this.getServletConfig().getInitParameter("action")全部的内容,包括:this.getServletContext().getRealPath("") 和 this.getServletConfig().getInitParameter("action")、spring mvc怎么获取web-inf路径、java 怎么获取服务器webroot的路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10088509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存