getResourceAsStream()这个方法老师获取不到文件,路径到底怎么配 。文件到底放在哪里????????
用的工具是MyEclipse 我的文件放在哪个目录下??????
请各位说清楚点 我都试了一个下午了 都是错的
用的工具是MyEclipse 我的文件放在哪个目录下??????
请各位说清楚点 我都试了一个下午了 都是错的
解决方案 »
- 跪求高手解决,为啥不能创建cookies,不胜感激
- spring中数据源问题
- 包junit.jar、 uddi4j.jar、juddi.jar、soap.jar
- JSP文件上传关于连接主机问题
- 我用的是WEBLOGIC7.02版本,OS为XP,域目录是:D:\bea\user_projects\mydomain
- 关于Jboss的BEAN热配置的问题 急急急!!!
- java实现收发短信功能
- Axis + Tomcat 如何部署?
- 在线等待,短信通讯的socket程序BUG,请高手帮我查询,贴出全部源码
- 有什么特别好用的可以阅读java类库的工具?
- Hibernate连接SQL2000
- 单点登录 yale cas 如何部署到tomcat?
import java.io.IOException;
import java.util.Properties;import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;import org.apache.log4j.Logger;import com.easymap.cms.HibernateSessionFactory;public class Initialize implements ServletContextListener{ public void contextInitialized(ServletContextEvent sce) {
initHibernateSessionFactory(sce);
}
public void contextDestroyed(ServletContextEvent contextEvent) {
} private void initHibernateSessionFactory(ServletContextEvent sce){
String SystemConfig = "/WEB-INF/conf/SystemConfig.properties";
ServletContext sc = sce.getServletContext();
try {
Properties propDBConfig = new Properties();
propDBConfig.load(sc.getResourceAsStream(SystemConfig));
String ip = propDBConfig.getProperty("DBServerIPAddress", "127.0.0.1");
String port = propDBConfig.getProperty("DBServerConnectPort", "1521");
String database = propDBConfig.getProperty("DBServerDataBaseName", "");
String user = propDBConfig.getProperty("DBServerUsername", "");
String pass = propDBConfig.getProperty("DBServerPassword", "");
new HibernateSessionFactory(ip, Integer.parseInt(port),database, user, pass);
} catch (FileNotFoundException e) {
Logger.getLogger(this.getClass().getName()).error("数据库连接环境设置失败:"+e);
throw new RuntimeException("数据库连接环境设置失败!");
} catch (IOException e) {
Logger.getLogger(this.getClass().getName()).error("数据库连接环境设置失败:"+e);
throw new RuntimeException("数据库连接环境设置失败!");
}
}
}
2. WEB-INF/conf/SystemConfig.properties
3.properties文件内容:# EzServiceManager Database Configuration File
DBServerIPAddress=192.168.10.184
DBServerConnectPort=1521
DBServerDataBaseName=dbtest
DBServerUsername=test
DBServerPassword=libm413
而我给你的方法对于web工程比较通用。同时需要说明的是:
有时候即使你使用getResourceAsStream方法在某一个web容器中能够获取到正确的相对路径。但是换了一个web容器后就不行了。这是因为各web容器的部署文件夹及层次有所不同。以前我也经常遇到你的问题。不过自我在1楼的方法后,就没这困扰了。
一般web容器都会有servlet的实现,也会有拿服务器程序根目录的方法,难道不同的web容器还要设置不同的路径???玩笑吧。。例如tomcat,request().getContextPath()可以拿到服务器根路径
读文件可以用
String link = request().getContextPath()+/文件夹/文件名;
xxx.getResourceAsStream(link);
String link = /export/文件名;
xxx.getResourceAsStream(link);
InputStream is=ReaderFile(类名).class.getClassLoader().getResourceAsStream("文件名");
就可以读到
别忘给分啊
如果是在当前web应用下,就直接拿到ServletContext即当前web应用,具体代码:ServletContext Context = getServletContext();当然也可以通过request.getSession().getServletContext()来拿到web应用
再通过context.getResourceAsStream("/文件夹名/文件名");就可以拿到一个InputStream了。
在当前web应用下也可以通过request.getRealPath()得到web应用中文件在tomcat服务器中的绝对路径,也就是该文件在硬盘上的绝对路径。你可以通过该路径new 出一个FILE,进而进行读写。
实际上一般做文件的上传下载,文件不会存储在数据库中,但会在数据库中存一个uri地址,我们可以通过,
request.getRequestUri()来得到该地址,uri地址格式如下/当前web应用名/Servlet映射名,罗嗦了这么多,关键想问问楼主是怎么调的getResourceAsStream()方法,希望对你有帮助。
context.getResource("/文件夹名/文件名")返回的是一个URL地址得到这个也能进行对文件的读写操作。
getResourceAsStream("文件名");
就行了