Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径
ClassLoader.getSystemResource("")
Class_Name.class.getClassLoader().getResource("")
Class_Name.class .getResource("/")
Class_Name.class .getResource("") // 获得当前类所在路径
System.getProperty("user.dir") // 获得项目根目录的绝对路径
System.getProperty("java.class.path")//得到类路径和包路径
打印输出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classesF:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar
2、 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径 :application.getRealPath(request.getRequestURI())
当前web应用的绝对路径 :application.getRealPath("/")
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()
3.1 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径 :application.getRealPath(request.getRequestURI())
当前web应用的绝对路径 :application.getRealPath("/")
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()
3、Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath()
文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
jsp中实现文件上传选择是通过input file=“file”实现的。举例如下:
有一个如下内容的upload.jsp文件,用来选择要上传的文件:
<html>
<head>
<title>Jsp文件上传例子</title>
</head>
<body>
<form name="upform" action="UploadServlet" method="POST" enctype="multipart/form-data">
<input type ="file" name="file1" id="file1"/><br/>
<input type="submit" value="上传" /><br/>
<input type="reset" />
</form>
</body>
</html>
上面文件值得注意的地方:
1. action="UploadServlet" 必须和后面的web.xml配置文件中对servlet映射必须保持一致.
2. method="POST" 这里必须为"POST"方式提交不能是"GET".
3. enctype="multipart/form-data" 这里是要提交的内容格式,表示你要提交的是数据流,而不是普通的表单文本.
4. file1表示你要上传一个文件.
jsp上传下载文件的路径是在服务器建立指定路径如下://接收上传文件内容中临时文件的文件名
String tempFileName = new String("tempFileName")
//tempfile 对象指向临时文件
File tempFile = new File("D:/"+tempFileName)
//outputfile 文件输出流指向这个临时文件
FileOutputStream outputStream = new FileOutputStream(tempFile)
//得到客服端提交的所有数据
InputStream fileSourcel = request.getInputStream()
//将得到的客服端数据写入临时文件
byte b[] = new byte[1000]
int n
while ((n=fileSourcel.read(b))!=-1){
outputStream.write(b,0,n)
}
//关闭输出流和输入流
outputStream.close()
fileSourcel.close()
//randomFile对象指向临时文件
RandomAccessFile randomFile = new RandomAccessFile(tempFile,"r")
//读取临时文件的第一行数据
randomFile.readLine()
//读取临时文件的第二行数据,这行数据中包含了文件的路径和文件名
String filePath = randomFile.readLine()
//得到文件名
int position = filePath.lastIndexOf('\\')
CodeToString codeToString = new CodeToString()
String filename = codeToString.codeString(filePath.substring(position,filePath.length()-1))
//重新定位读取文件指针到文件头
randomFile.seek(0)
//得到第四行回车符的位置,这是上传文件数据的开始位置
long forthEnterPosition = 0
int forth = 1
while((n=randomFile.readByte())!=-1&&(forth<=4)){
if(n=='\n'){
forthEnterPosition = randomFile.getFilePointer()
forth++
}
}
//生成上传文件的目录
File fileupLoad = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file","upLoad")
fileupLoad.mkdir()
//saveFile 对象指向要保存的文件
File saveFile = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad",filename)
RandomAccessFile randomAccessFile = new RandomAccessFile(saveFile,"rw")
//找到上传文件数据的结束位置,即倒数第四行
randomFile.seek(randomFile.length())
long endPosition = randomFile.getFilePointer()
int j = 1
while((endPosition>=0)&&(j<=4)){
endPosition--
randomFile.seek(endPosition)
if(randomFile.readByte()=='\n'){
j++
}
}
//从上传文件数据的开始位置到结束位置,把数据写入到要保存的文件中
randomFile.seek(forthEnterPosition)
long startPoint = randomFile.getFilePointer()
while(startPoint<endPosition){
randomAccessFile.write(randomFile.readByte())
startPoint = randomFile.getFilePointer()
}
//关闭文件输入、输出
randomAccessFile.close()
randomFile.close()
tempFile.delete()
jsp文件下载选择路径:
//要下载的文件
File fileload = new File("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad",filename)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)