首先得到ServletContext对象(jsp中的application)
String add=applicationgetRealPath("/"); super指得是GenericServlet类
最后,可以得到任意一个网站文件的地址:
add+requestgetServletPath();
你需要一个servlet或者action,servlet举例:
建一个servlet,在doPost()中通过,
requestgetSession()getServletContext()getRealPath("/WEB-INF");
public static String getRealPath(Class clazz) {
String url = clazzgetResource("")getPath();
int displace = urlindexOf("WEB-INF");
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < displace - 1; i++) {
bufferappend(urlcharAt(i));
}
return buffertoString();
}
java获取根路径有两种方式:
1)在servlet可以用一下方法取得:
requestgetRealPath(“/”)
例如:filepach = requestgetRealPath(“/”)+”//upload//”;
2)不从jsp,或servlet中获取,只从普通java类中获取:
String path = getClass()getProtectionDomain()getCodeSource()getLocation()getPath();
SAXReader() saxReader = new SAXReader();
if(pathindexOf(“WEB-INF”)>0){
path = pathsubstring(0,pathindexOf(“/WEB-INF/classes”)+16);
// ‘/WEB-INF/classes’为16位
document = saxReaderread(path+filename);
}else{
document = saxReaderread(getClass()getResourceAsStream(filename));
}
不用执行select
count(),直接用下边的方法,执行你的查询sql。然后通过指针来获取总记录数。
preparedstatement
stmt
=
conpreparestatement
(sql,resultsettype_scroll_insensitive,resultsetconcur_read_only);//
一定要有resultsettype_scroll_insensitive这个参数,不然指针不能滚动,下边的afterlast就不能用。
resultset
rs
=
stmtexecute();
rsafterlast();//指针指向最后一条记录。
int
num
=
rsgetrow();//获取总记录数。
rsbeforefirst();//指针重新指向第一条记录。
//下边你可以循环取出你要的记录了。
另外建议多看下api,很多人都是preparedstatement
stmt
=
conpreparestatement(sql)写的,其实通过增加resultsettype_scroll_insensitive参数就可以
通过滚动指针来获取记录数,并且可以直接遍历查询的结果。
通过容器提供的API获取。
对于实现sun的Servlet23以上的Servlet。
提供以下方法支持:
来自GenericServlet类的
getServletContext()获得ServletContext 由context
获得contextgetServerInfo(),服务器类型信息。
例如:
Tomcat60中
getServletContext()getServerInfo(),
返回的结果为:Apache Tomcat/6014
以上就是关于我想在java类里获取web项目的路径,比如我将项目放在D:/,项目名称为test,我想得到D:/test路径,在java全部的内容,包括:我想在java类里获取web项目的路径,比如我将项目放在D:/,项目名称为test,我想得到D:/test路径,在java、jsp 在java程序中获取 web-inf目录、如何在java类中获取javaWeb的根路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)