Java中路径总结AAA http://www.360doc.com/content/12/1027/10/820209_244034273.shtml

时间:2021-06-27 08:41:07

Java中路径总结 -- 在 java、jsp、servlet 中路径的不同获取方法

1.1 java文件中获得路径

Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径
ClassLoader.getSystemResource("")
Class_Name.class.getClassLoader().getResource("")
Class_Name.class .getResource("/") 
Class_Name.class .getResource("") // 获得当前类所在路径
System.getProperty("user.dir") // 获得项目根目录的绝对路径
System.getProperty("java.class.path") //得到类路径和包路径

打印输出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classes;  F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar


1.2 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:reqst.getReqstURI()
文件的绝对路径  :application.getRealPath(reqst.getReqstURI());
当前web应用的绝对路径 :application.getRealPath("/");

取得请求文件的上层目录:new File(application.getRealPath(reqst.getReqstURI())).getParent()

1.3 Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:reqst.getServletPath();
文件的绝对路径 :reqst.getSession().getServletContext().getRealPath(reqst.getReqstURI())

当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");

(ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()

)

=====================================================================================================

下面的内容可以不看,因为本文是转载内容,原文有许多“?”使得文章不完整。

======================================================================================================
【Java--XML】读取WEB-INF下XML文件

在web.xml设置Context-param 项.设置如下 

 <context-param> 

<param-name>conf_xml</param-name>

<param-val>/WEB-INF/conf/message.xml</param-val>

</context-param> 

然后写一个listener类 

 class Pdklistener implements ServletContextListener{

public void contextInitialized(ServletContextEvent? event){

???? //在这里操作????? 

String xmlPath =

? event.getServletContext().getRealPath("/") 

+ event.getServletContext().getInitParameter("conf_xml");??   //您可以创建一个类来存储这个信息.以后就可以在你的应用里使用了.???

 }

? p lic void contextDestroyed(ServletContextEvent event){? }} 
//最后,把这个listener设置到web.xml中 

<listener>

? <listener-class>Pdklistener (这里要类的全路径)</listener-class>

</listener> 

##################################################################### 
另-种方法,很简单.在jsp中加上下面一段.就可以取得web-inf下面的文件 
String str = reqst.getRealPath("WEB-INF") + "/conf/message.xml"; 
这个完全也可以.


public void doGet(HttpServletReqst reqst, HttpServletResponse response)
throws ServletException, IOException {
String output = "";

String fileName = 

reqst.getSession().getServletContext().getRealPath("/")

+ "WEB-INF/conf/ff.txt";
fileName = fileName.replace("\\", "/");
System.out.println(fileName);
File file = new File(fileName);
try {
B?redReader input = new B?redReader(new FileReader(file));
StringB?r b?r = new StringB?r();
String text;

while ((text = input.readLine()) != null)
b?r.append(text + "\n");

output = b?r.toString();
} catch (IOException ioException) {
System.err.println("File Error!");
}
reqst.setAttribute("output", output);
reqst.getReqstDispatcher("/WEB-INF/jsp/FileDemo.jsp").forward(reqst, response);