一个Web找文件路径的问题 开发了一个bs的Web应用,服务用的是tomcat,在程序中读一个文件,doc = docB.parse("databaseConfig.xml");,可认的文件路径是c:\jakarta-tomcat-5.0.12\bin,想让它找服务里的相对路径,如何做呢,有人遇到过吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主:用这个方法取路径/** * 取到目录为webRoot * * @return */public String getWebRoot(){ String webRoot=""; String className = "org.apache.commons.dbcp.BasicDataSource"; String classNameUrl="/org/apache/commons/dbcp/BasicDataSource.class"; String temp=null; int i = 0; try { Class.forName(className); java.net.URL classUrl = FilesUtil.class .getResource(classNameUrl); temp = classUrl.getPath(); temp = URLDecoder.decode(temp); //如果是windows则从第六个字符开始,否则从第五个字符开始 if ("Win".equalsIgnoreCase(System.getProperty("os.name").substring( 0, 3))) { i = 6; } else { i = 5; } webRoot = temp.substring(i, temp.indexOf("WEB-INF") - 1); } catch (Exception e) { Logger.debug("取得webRoot出错:", e); webRoot = ""; }}用这个函数后你可以取得你项目的Webroot,其其它就什么都好解决了!建议楼主把你这个数据库配置文件放到web-inf下面. 谢谢回复!在网上找到了一个贴子:Java WebService SDK里一般都对Servlet部分进行了简单封装, 但都是能得到 HttpServletRequest 的, 如果你是用 apache Axis 可以这样获得: MessageContext mc = MessageContext.getCurrentContext(); HttpServletRequest request = (HttpServletRequest) mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST); String root=request.getContextPath();下面我也不继续写了吧。。这个正合适我,试过,也好用,作者说下面不用写了,可下面就不会了,请大家帮续上! docB.parse("/databaseConfig.xml");加一个/ 默认到WEB-INF/class MyEclipse建立的一个web项,浏览器打开一直404报错 求各位大哥大姐指教,小弟初学者! Java Servlet 问题求助 能不能在参数里带上整个form的内容?比如 aa.jsp?para=form 一个小问题 servlet的存在周期? 如何做自动更新? websphere下绝对路径问题 招聘JSP程序员(长沙市) struts-2.3.16整合spring4.0.3出错!麻烦大家帮忙看看 怎么样使用session来传参数的。。 一个小问题,我已翻过csdn里了,没有明确答案...大家帮我....顶也行..急等
用这个方法取路径
/**
* 取到目录为webRoot
*
* @return
*/
public String getWebRoot()
{
String webRoot="";
String className = "org.apache.commons.dbcp.BasicDataSource";
String classNameUrl="/org/apache/commons/dbcp/BasicDataSource.class";
String temp=null;
int i = 0;
try {
Class.forName(className);
java.net.URL classUrl = FilesUtil.class
.getResource(classNameUrl);
temp = classUrl.getPath();
temp = URLDecoder.decode(temp);
//如果是windows则从第六个字符开始,否则从第五个字符开始
if ("Win".equalsIgnoreCase(System.getProperty("os.name").substring(
0, 3))) {
i = 6;
} else {
i = 5;
}
webRoot = temp.substring(i, temp.indexOf("WEB-INF") - 1);
} catch (Exception e) {
Logger.debug("取得webRoot出错:", e);
webRoot = "";
}
}
用这个函数后你可以取得你项目的Webroot,其其它就什么都好解决了!
建议楼主把你这个数据库配置文件放到web-inf下面.
在网上找到了一个贴子:
Java WebService SDK里一般都对Servlet部分进行了简单封装,
但都是能得到 HttpServletRequest 的, 如果你是用 apache Axis 可以这样获得: MessageContext mc = MessageContext.getCurrentContext();
HttpServletRequest request = (HttpServletRequest) mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
String root=request.getContextPath();
下面我也不继续写了吧。。这个正合适我,试过,也好用,作者说下面不用写了,可下面就不会了,请大家帮续上!