jsp 通过 javabean 链接 access 的相对路径怎么设置呀??
在eclipse下我的工程名是Myweb,
Myweb/webcontent下放的是jsp文件,
Myweb/database下放的是access数据库文件
我在DBConnAccess()写的
try {
dbpath=URLDecoder.decode(this.getClass().getResource("/").getPath()
+"database/mymuesli.mdb ","gb2312");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
报错:
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
急需解决
[解决办法]
你这样写需要把mdb文件放到Myweb/WEB-INF/classes/database/下
[解决办法]
补充一下,安全的做法是:
1、mdb文件放到classpath下(通常是WEB-INF/classes)
2、程序中用dbpath=URLDecoder.decode(this.getClass().getResource("/database/mymuesli.mdb").getPath(),"gb2312");
getResource("/")只能返回ClassPath中的一个路径(ClassPath是可以设置N多路径的),
通过隔天Resource("/")+相对路径,也是不能保证找到的。
[解决办法]
把mdb文件放到Myweb/WEB-INF/classes/database/下
[解决办法]
URL dbUrl=Class.class.getResource("/a.jpg");//("/database/mymuesli.mdb"); File dbFile=new File(dbUrl.getFile()); String dbpath = dbFile.getAbsolutePath();
[解决办法]
上面回复中的
getResource("/a.jpg");
是我自己测试的,
你换成
getResource("/database/mymuesli.mdb");
[解决办法]
顶 期待高手 关注中!
[解决办法]
好多高手啊!跟来学习学习!
[解决办法]
多摸索,多尝试,学会调试的方法!这样进步才快!
[解决办法]
我自己写的类在项目中用,可参考下.
package com.data;import java.sql.*;public class dataaccess{private String odbcQuery;private Connection odbcconn;private Statement odbcstmt;private String myquerystr;private ResultSet sqlRst;private String realpath;public dataaccess(){ odbcQuery=null; odbcconn=null; odbcstmt=null; myquerystr=null; sqlRst=null; realpath=null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){ e.printStackTrace(); }}public dataaccess(String mysql){ this.myquerystr=mysql;}//设置SQL语句public void setSqlstr(String mysql){ this.myquerystr=mysql;}//设置数据库的物理路径public void setrealpath(String rpath){ this.realpath=rpath;}//初始化需要的数据public void initial(){ try{ String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+realpath; this.odbcconn = DriverManager.getConnection(url); this.odbcstmt = odbcconn.createStatement(); this.odbcQuery = this.myquerystr; }catch (SQLException e) { e.printStackTrace(); } }//执行添加删除修改public void exeUpdate(){ try{ odbcstmt.executeUpdate(this.odbcQuery); }catch(SQLException e){ e.printStackTrace(); }}//执行查询public ResultSet exeQuery(){ try{ return odbcstmt.executeQuery(this.odbcQuery); } catch(SQLException e) { return null; }}public void Closedb(){ try { if(sqlRst!=null) sqlRst.close(); if(odbcstmt!=null) odbcstmt.close(); if(odbcconn!=null) odbcconn.close(); } catch(Exception e) { system.out.println(e.tostring()); } } }