以前使用的安装版的tomcat,jsp文件里使用相对路径时一切正常,后来用了解压版的tomcat,把以前的jsp代码拿过来用,只要是有路径操作的地方全部都会报错,把相对路径改为绝对路径之后就能正常运行了。请问这是怎么一回事?是不是解压版的tomcat还需要配置什么东西才可以读取相对路径,谢谢
解决方案 »
- |javamy| 在给字段添加注解的时候,有些说明是可写可不写的,但是Java一定要全写,加default后就可以,但String default 不了 谢谢
- 错误 急急..................
- 求助Struts+Hibernate整合实现排序,审核功能
- <html:select>对应数据库数据的问题
- <iframe>标签的使用,谢谢大家!
- 关于java调用webservice的几个问题,搜索的时候都没见人问过.呵呵,比较菜吧! 请各位帮忙了.(在线,高分相送)
- dom4j删除节点问题。如何唯一确定一个节点?
- 怎样用JBuilderX建一个jsp网页后找到Disign标签并加上控件啊?
- 简单问题(在线)(马上给分)!!!
- 奇怪的问题(特急,在线等!)
- 请问两个表怎么连接修改啊,送100!
- strut1.3与hibernate3.2.5开发有冲突么?
org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)jsp里面路径的一句是这么写的:
String url="jdbc:odbc:Driver={MicroSoft Access Driver(*.mdb)};DBQ=webapps/test/db1.mdb";db1.mdb这个文件是存在的,就是提示找不到,换成绝对路径就可以正常运行,这是为什么?
FileWriter fw=new FileWriter("sp.txt");
结果最后生成sp.txt的地方竟然是tomcat的bin文件夹里,根目录的位置变了,这是为什么呢?可不可以改回原来根目录的地址?
简单说的说就是相对路径是相对于谁的问题,解压版是相对于start.bat.
所以,可以换用:
(1)getServletContext().getResourceAsStream("/WEB-INF/aa.txt");
ServletContext可以从整个Web应用中找到文件,/代表web应用根目录
(2)getClass().getResourceAsStream("/aa.txt");
这是从classpath中查找文件,所以aa.txt的位置应该是在:/WEB-INF/classes/aa.txt
(3)还可以用java.util.ResourceBundle类的getBundle()方法
ResourceBundle rb = ResourceBundle.getBundle("com.sdkd.config");
位置是:/WEB-INF/classes/com/sdkd/config.properties