导航:首页 > 文件教程 > web文件读取路径

web文件读取路径

发布时间:2021-02-27 14:49:32

『壹』 如何获取web应用的部署路径

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

web 上运行
1:this.getClass().getClassLoader().getResource("/").getPath();
this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的绝对URI路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
System.getProperty("user.dir");
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 项目的绝对路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war

2:this.getClass().getResource("/").getPath();
this.getClass().getResource("").getPath(); 得到的是当前类 文件的URI目录。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/
this.getClass().getResource(".").getPath(); X 不 能运行

3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
Thread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 项目的绝对路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war

在本地运行中
1:this.getClass().getClassLoader().getResource("").getPath();
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 ClassPath的绝对URI路径。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
this.getClass().getClassLoader().getResource(".").getPath(); X 不 能运行
2:this.getClass().getResource("").getPath();
this.getClass().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:Thread.currentThread().getContextClassLoader().getResource(".").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
Thread.currentThread().getContextClassLoader().getResource("/").getPath() X 不 能运行

最后
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
还有request.getContextPath(); 在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。

『贰』 如何在web页面获取文件绝对路径

string filePath = Server.MapPath("D:\tst\tst.tx");
参考MSDN
http://msdn.microsoft.com/zh-cn/library/system.web.httpserverutility.mappath.aspx

解释:
public string MapPath(
string path
)
参数

path
类型:System.String
Web 服务器的虚拟路径。
返回值

类型:System.String
与 path 相对内应的物理文件容路径。

『叁』 分析下web。xml执行servlet的路径。。就是说读取文件的路径。

楼主可以这样分析,首先我从你的代码中选出一对代码
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>Cunchu</servlet-name>
<servlet-class>ch.Cunchu</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Cunchu</servlet-name>
<url-pattern>/servlet/Cunchu</url-pattern>
</servlet-mapping>
这里的<servlet-mapping>与<servlet>很明显示一组信息,那么我们的jsP页面时如何找到对引得Servlet文件呢?
首先,在你点击提交按钮的时候,会执行Action中的地址内容,也就是<servlet-mapping>中的<url-pattern>中的URL信息,再找到对应的URL后,就可以确认对应的<servlet-mapping>中的<servlet-name>,系统就会根据<servlet-mapping>中的<servlet-name>,去寻找对应相同名字的<servlet>,最后就可以找到<servlet>对应的<servlet-class>中的servlet文件进行执行。

也就是说,jsp中action配置的地址应该与<servlet-mapping>中的<url-pattern>地址一致,<servlet-mapping>中的<servlet-name>应该与<servlet>中的<servlet-name>相同,最终要执行的servlet文件要与<servlet>中的<servlet-class>地址一致。

希望对你有帮助,加油

『肆』 javaweb中怎么获取文件的绝对路径

在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。
另:在Jsp,Servlet,Java中详细获得路径的方法!
1.jsp中取得路径:

以工程名为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)类的绝对路径:String u=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()

(3)得到相对地址:request.getRequestURI()
结果:/TEST/test

『伍』 java web中读取文件,相对路径怎么写

相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现内。容
举例:
XMLS.class.getClass().getResourceAsStream("/test/test.txt");
解释:XMLS.class.getClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。
备注:这个方法中后面的路径也可以通过截取的形式来进行路径获取,实现原理都是找到当前类路径,之后通过相对位置找到另外文件路径。

『陆』 java web工程,读取配置文件路径问题

读取复src下的文制件,可以用下面的方式

publicclassTest1{

publicstaticvoidmain(String[]args){
Propertiespro=newProperties();
InputStreamin=Test1.class.getResourceAsStream("/config.properties");
try{
pro.load(in);
pro.getProperty("aa");
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}

『柒』 java web工程中读取properties文件,路径一直不知道怎么写

1. 使用java.lang.Class类的getResourceAsStream(String name)方法

InputStreamin=getClass().getResourceAsStream("/config.properties");

在静态方法中,由于不能使用getClass()方法,必须写出类的名字。区别不大。

MyClass.class.getResourceAsStream("/config.properties");

使用这个方法,路径前面可以加斜杠也可以不加。根据Class类getResourceAsStream()方法的JavaDoc:

Finds a resource with a given name. The rules for searching resources associated with a given class are implemented by the defining class loader of the class. This method delegates to this object's class loader. If this object was loaded by the bootstrap class loader, the method delegates to ClassLoader.getSystemResourceAsStream.

Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:

If the name begins with a '/' ('u002f'), then the absolute name of the resource is the portion of the name following the '/'.

Otherwise, the absolute name is of the following form:

modified_package_name/name

Where the modified_package_name is the package name of this object with '/' substituted for '.' ('u002e').

就是说,这个path假如以斜杠开头,则斜杠后面的部分是文件相对classpath的路径;假如不是,Java会把这个path看作是“包名/文件名”的结构,会尝试在这个类的包里面去找,而不是从classpath开始找;在这种情况下,除非你把properties文件放到MyClass.class所属的包里面,不然都会是null的。

2. 使用java.lang.ClassLoader类的getResourceAsStream(String name)方法


路径是不能加斜杠的!非常重要。

MyClass.class.getClassLoader().getResourceAsStream("config.properties");

这是因为使用classloader进行读取,所输入的参数必须是一个相对classpath的绝对路径,在格式上,一个绝对路径是不能以'/'开头的。

注意这两个方法是同名的,但路径参数的格式截然不同。


3. 在Maven中的运用

现在几乎所有的web project都是maven project,Maven的默认设置是把

src/main/resources/

加入到classpath里面的。那么,最好的做法是把你的properties文件放进src/main/resources里面,然后用上面代码读取。用Class类的,一般要加斜杠;用ClassLoader类的,绝不能加斜杠!

假如是Eclipse里面,需要把这个src/main/resources加到classpath里面。具体操作是右击工程,选择“Configure buildpath”,根据Maven的要求,把src/main/java和src/main/resources都加进去,并且保证Exclude是none,Include是all,或者至少要包括你需要读取的文件。

『捌』 关于web工程中java类如何获取webapp路径下的文件

第一复步: 先获得classpath路径制

Stringclasspath=this.getClass().getResource("/").getPath().replaceFirst("/","");

这样子可以得到classpath路径,类似于:

F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/WEB-INF/classes/


然后把WEB-INF/classes截取就能获得WebAPP目录啦:

StringwebappRoot=classpath.replaceAll("WEB-INF/classes/","");

得到的结果就是:

F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/


通过这个路径你就能获取该文件夹下的所有文件啦

『玖』 java web 怎么获取文件路径

以工程名为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

『拾』 怎么获取webroot下的一个文件夹的路径

package com.test.servlet;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServlet extends HttpServlet {

/* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

DiskFileItemFactory factory= new DiskFileItemFactory();

String path=request.getRealPath("/upload");//保存的默认路径,注意在Tomecate底下的

//System.out.println(path);

factory.setRepository(new File(path));

factory.setSizeThreshold(1024*1024);//上传的大于1M就存在磁盘里面

ServletFileUpload upload=new ServletFileUpload(factory);

try{

List<FileItem> list=upload.parseRequest(request);
//注意FileItem集合里面放的是提交的所有东西 包括username,password不仅仅是文件

for(FileItem item:list)
{

if(item.isFormField())//判断不是文件类型
{
String name=item.getFieldName();//取字段的名字

String value = item.getString("gbk");

request.setAttribute(name, value);
}
else//是文件类型
{

String name = item.getFieldName();

String value = item.getName();//只适用于返回文件类型的名字

int star=value.lastIndexOf("\\");

String filename=value.substring(star+1);//取文件名字

System.out.println(filename);

request.setAttribute(name, filename);

item.write(new File(path,filename));

/* OutputStream os = new FileOutputStream(new File(path,filename));

InputStream is = item.getInputStream();

byte[] buffer=new byte[400];

int length=0;

while((length = is.read(buffer))>0)
{
os.write(buffer,0,length);
}

os.close();

is.close();

*/
}

}

}catch(Exception e)
{
e.printStackTrace();
}

request.getRequestDispatcher("upload/result2.jsp").forward(request, response);

}

}
很详细!!

阅读全文

与web文件读取路径相关的资料

热点内容
有什么好的消化内科科普网站 浏览:504
打开网络映射存储为什么特别慢 浏览:157
苹果手机摔弯了还能修吗 浏览:532
华中数控编程怎么换 浏览:874
word2007画图工具在哪里 浏览:565
广播式网络由什么组成 浏览:538
福州老用户升级4g校园套餐 浏览:644
jstr加点击事件 浏览:652
搜狗输入法最老版本下载地址 浏览:145
玛卡编程怎么样 浏览:302
怎么编程伺服器编码 浏览:109
什么是机密文件 浏览:258
网站收录量低应该如何解决 浏览:978
飞跃贷app官网 浏览:337
js正则表达式全为整数 浏览:561
在哪里免费下载大数据 浏览:218
linux怎么做视频网站 浏览:949
安卓舰娘登入不进去 浏览:145
ak47龙鳞升级成什么 浏览:256
联通sim卡怎么升级4g 浏览:120

友情链接