Java web项目访问路径问题。求解啊!

Java web项目访问路径问题。求解啊!,第1张

images的url写成src="${pageContextrequestcontextPath}/images/logojpg"

一般会把${pageContextrequestcontextPath}这部分提取出来,在jsp写成:

<% String path = requestgetContextPath();%>

如图:

则images路径可以写成src="<%=path%>/images/logojpg"

访问loginjsp页面的话,写成>

新建一个maven工程后,main目录下会有java和resources两个文件夹,其中java文件夹下存放源代码,resources文件夹下存放一些配置文件等。

maven%E5%B7%A5%E7%A8%8B%E7%BB%93%E6%9E%84%E5%9B%BEpngJava: maven下读取资源文件的问题, java路径

在弄清楚编译后,资源文件以及字节码存在哪里这个问题之前,有必要明白什么是classpath

classpath实际上就是编译后的 以 classes 文件夹为起点的路径,而在ItelliJ IDEA 中编译后的文件都会存入out/production下。

所以,编译后,resources文件夹中的文件以及java目录下的文件都会存入同一个目录(out/production)下,也就是说,编译后是不存在java和resources这两个目录的。

读取资源文件的若干中方法

package meshenchaomain;

import javaio;

/ Created by jerry on 16-4-20 /

public class Demo1 {

private static void readTxt(String filePath) {

BufferedReader reader = null;

try {

reader = new BufferedReader(new FileReader(filePath));

String line = null;

while ((line = readerreadLine()) != null) {

Systemoutprintln(line);

}

} catch (Exception e) {

eprintStackTrace();

} finally {

if (reader != null) {

try {

readerclose();

} catch (IOException e) {

eprintStackTrace();

}

}

}

}

public static void main(String[] args) {

//获取classpath路径

Systemoutprintln("classpath路径: "+Demo1classgetClassLoader()getResource("")getPath());

//获取当前类的加载路径

Systemoutprintln("当前类加载路径: "+Demo1classgetResource("")getPath());

// 读取文件resources目录中文件的若干种方法

// 方法一:从classpath路径出发读取

readTxt(Demo1classgetClassLoader()getResource("test/demo1txt")getPath());

// 方法二:从类加载路径出发,相当于使用绝对路径

readTxt(Demo1classgetResource("/test/demo1txt")getPath());

// 方法三:从类加载路径出发,相当于使用相对路径

readTxt(Demo1classgetResource("///test/demo1txt")getPath());

}

}

其中demo1txt文件中内容为:

hahahahahahahahahha

输出如下:

classpath路径: /home/jerry/IdeaProjects/Demo/out/production/demo1/

当前类加载路径: /home/jerry/IdeaProjects/Demo/out/production/demo1/me/shenchao/main/

hahahahahahahahahha

hahahahahahahahahha

hahahahahahahahahha

从上面可以发现getResource 与 classgetClassLoader()getResource两者的区别:

前者获取的是当前类加载的路径,如果用此方法读取文件则有两种方法,与相对路径绝对路径非常类似,具体参见代码

后者获取的是类加载器的路径,即会到classpath路径下。可以理解当前在 classp/ 目录下,要想访问哪个文件,直接填写路径即可,不用区分相对路径和绝对路径。显然,此方法比较容易写出。推荐。

cbd5a61765aed016a56103b68dcc8d51gif

相关

Related Posts

JAVA: 理解Java中的类初始化

在运行 Java 代码时,很多时候需要弄清楚程序执行的流程,而面向对象的 Java 程序并非像主要为面向过程而设计的 C 语言一样去顺序执行(简单按照代码的顺序),这使得对于类文件的加载以及执行流程的理解非常重要。本文简单介绍了 Java 类的初始化部分具体过程,包括成员变量、静态代码块、构造函数等的初始化时机及执行流程。 初始化时机 根据 javase 8 的文档说明[1],一个类(本文暂不考虑接口)T…

JAVA: 获取当前月份cget(CalendarMONTH)中月份少一个月

@Test public void testGetTitle(){ Systemoutprintln(new LocalDate()minusDays(1)toString("MM/dd/yyyy")); // joda-time Calendar c1 = CalendargetInstance(); int year…

JAVA: 读写文件的几种方法

如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import javaioBufferedReader; import javaioBufferedWriter; import javaioFileReader; import javaioFileWriter; import javaioIOException; import javatextSimpleDateFormat;…

java文件中获得路径

ThreadcurrentThread()getContextClassLoader()getResource("") //获得资源文件(class文件)所在路径

ClassLoadergetSystemResource("")

Class_NameclassgetClassLoader()getResource("")

Class_Nameclass getResource("/")

Class_Nameclass getResource("") // 获得当前类所在路径

SystemgetProperty("userdir") // 获得项目根目录的绝对路径

SystemgetProperty("javaclasspath") //得到类路径和包路径

打印输出依次如下:

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\dom4jjar

2、 JSP中获得当前应用的相对路径和绝对路径

根目录所对应的绝对路径:requestgetRequestURI()

文件的绝对路径:applicationgetRealPath(requestgetRequestURI());

当前web应用的绝对路径 :applicationgetRealPath("/");

取得请求文件的上层目录:new File(applicationgetRealPath(requestgetRequestURI()))getParent()

一般在处理Web应用下的文件创建与移动等时,会涉及到很多关于java

中相对路径,绝对路径等问题。以下是一些总结。希望大家遇到类似的问题,可以更有效的解决。

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

1基本概念的理解

绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:

C:\xyz\testtxt 代表了testtxt文件的绝对路径。>package orgchengfile;

import javaioFile;

public class FileTest {

public static void main(String[] args) throws Exception { 

Systemoutprintln(ThreadcurrentThread()getContextClassLoader()getResource("")); 

Systemoutprintln(FileTestclassgetClassLoader()getResource("")); 

Systemoutprintln(ClassLoadergetSystemResource("")); 

Systemoutprintln(FileTestclassgetResource("")); 

Systemoutprintln(FileTestclassgetResource("/")); //Class文件所在路径 

Systemoutprintln(new File("/")getAbsolutePath()); 

Systemoutprintln(SystemgetProperty("userdir")); 

}

}

42服务器中的Java类获得当前路径(来自网络)

(1)Weblogic

WebApplication的系统文件根目录是你的weblogic安装所在根目录。

例如:如果你的weblogic安装在c:\bea\weblogic700

那么,你的文件根路径就是c:\

所以,有两种方式能够让你访问你的服务器端的文件:

a使用绝对路径:

比如将你的参数文件放在c:\yourconfig\yourconfproperties,

直接使用 new FileInputStream("yourconfig/yourconfproperties");

b使用相对路径:

相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放

在yourwebapp\yourconfig\yourconfproperties,

这样使用:

new FileInputStream("/yourconfig/yourconfproperties");

这两种方式均可,自己选择。

(2)Tomcat

在类中输出SystemgetProperty("userdir");显示的是%Tomcat_Home%/bin

(3)Resin

不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET

的路径为根比如用新建文件法测试File f = new File("ahtm");

这个ahtm在resin的安装目录下

(4)如何读相对路径哪?

在Java文件中getResource或getResourceAsStream均可

例:getClass()getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web

发布根路径下WEB-INF/classes

默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。

5读取文件时的相对路径,避免硬编码和绝对路径的使用。(来自网络)

51 采用Spring的DI机制获得文件,避免硬编码。

参考下面的连接内容:

>

您好,不一定要设置cookie里的,手动附值也行的~~ {"uid":1394}

post_params: {"name":"123","id":"123","sel":"new"},这是我的设置,3个参数,在servlet里面用

String name = >

以上就是关于Java web项目访问路径问题。求解啊!全部的内容,包括:Java web项目访问路径问题。求解啊!、请问在java代码中怎样获取某个磁盘上的某个文件的绝对路径和相对路径有知道的麻烦告诉我!谢谢!、maven项目只能读到绝对路径下的文件,读不到相对路径下的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9279808.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存