JSP和Servlet中request怎么获得请求发起页面的地址或路径
一种方式就是前端把地址(只要最后 / 的部分)作为参数传回来。要么则在session会话类中保存你的路径,如在1jsp中调用session保存‘1jsp’,其他也这样做。然后servlet处理时再从session再拿出来也是可以知道的。如果拿出来的既不是1jsp,又不是2jsp,你懂的!!前端的页面肯定不会是1jsp或2jsp。
下载文件有两种方式。
1是在你的服务器上能相对找到。
即 http://localhost8080/web 这个映射的是你服务器上的 D:\web 这个目录
那么你这个文件就要在 D:\web 这个目录中。
比如 D:\web\downfile\111xls
你的超链接可以这样写。 <a href="/downfile/111xls">download</a>
2就是用流的方式下载。
<a href="#" onclilck="">download</a>
这样的超链接就不是指向一个文件了,而是向服务器提交下载申请。
这样执行到你后台的servlet类中,你可以根据一些必要的标识知道你要下载的文件。
这样你把D:\111xls文件读取出来。 然后写入到responsegetOutPutStream (这个方法有些记不清了,你查一下) 这样实现下载。
你保存文件时数据库中应该保存的是相对路径才对!!比如:upload/atxt
真实的文件都是上传至服务器中。比如在webroot下的file文件夹下
那么你在却出文件时!!你的文件实际的地址应该就是webroot下 file/upload/atxt
jsp显示时应该是:
<a href="<%=requestgetContextPath() %>/file/数据库的路径">打开</a>
补充下!!上面可以在jsp页面直接打开文件了。
但是要注意文件保存的路径是要在web-info之外。要不就无法访问了!因为 web-info文件夹是被保护的!
做上传当然需要知道文件的位置首先在你上传的jsp页面需要有一个表单form在这个表单里有一个这样一个标签在你点上传按钮的时候将你选中的文件传递到servlet或action这样的处理页面在处理页面StringfileName=requestgetParameter("fileName")这样就得到了文件名。然后你就可以使用文件流对这个文件进行上传操作。如果还有问题直接HI我。
jsp的相对路径就是在地址栏就可以看到了。至于你说的绝对路径的话你可以通过
String path=applicationgetRealPath(requestgetRequestURI());
String dir=new javaioFile(path)getParent();
outprintln("dir);
这个在页面中打印出来就可以看到了。
0条评论