JSP页面点击超链接d出文件下载,代码如下:
<%String path = requestgetContextPath();
String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";
%>
//然后
<a href ="<%= basePath %>/upload/aadoc }" target="_blank">下 载</a>
注:<%= basePath %>获取部署JSP项目的根目录,/upload/aadoc/是根目录>upload>aadoc文件,根据需求修改即可。
获取项目根目录
在jsp里去<%=requestgetContextPath()%>这就是项目的根路径了,是到项目这层的。
js的引入方法如下:
<script src="<%=requestgetContextPath() %> /home/testjs"></script>
<%=requestgetContextPath()%>是解决相对路径的问题,可返回站点的根路径。
<a href="<%=requestgetContextPath()%>/XXXjsp"> //这样获得的是绝对路径
<a href="XXXjsp"> //这样获得的是相对路径
<a href="<%=requestgetContextPath()%>/XXXXjsp"> 能够更有效的防治连接的失效。
requestgetContextPath()得到的是项目的名字,如果项目为根目录,则得到一个"",即空的字条串,
如果项目为dzjc, <%=requestgetContextPath()% >/ 将得到dzjc/,服务器端的路径则会自动加上,
<a href="XXXjsp"> 应该就是指当前路径下的这个xxxjsp页面,有时候也可以在head里设置html:base
来解决路径的问题,不过用的最多的还是requestgetContextPath。
用EL来表示相同功能的EL为:${pageContextrequestgetContextPath()}
requestgetScheme();
返回的协议名称,默认是>
jsp要看效果,需要发不到web容器中,比如tomcat中。
举例说明:
一,将项目导出成WAR包,而后将该包直接复制到tomcat的webapp目录下,这样就可以访问了。
二,配置tomcat
修改${tomcathome}\conf\serverxml文件在Host节点下增加如下参考代码:
<Context docBase="D:\pafalearning\userapp\dist\tomcat\userappwar"path="/userapp"reloadable="true"/>
<Context docBase="D:\pafalearning\userapp\dist\tomcat\userappwar" path="/userapp" reloadable="true"/> docBase:指向项目的根目录所在的路径,
由于将项目打成了war包,所以直接指向这个war包就可以了(项目名为:userapp)
path:是一个虚拟目录,这里设置成了"userapp",则启动Tomcat后,你将通过>
// 直接一个斜杠就可以了
<script type = "" src="/js" />
// 不过获取根目录需要在服务端运行
// 不然假设你这个项目是放在 D盘的N层文件夹里面
// 无论你在哪一层打开文件 根目录都会直接是 D盘
webRoot是不需要加的,因为它是默认的JSP目录,完整的路径应该是:项目名/xxxjsp,如果在webroot下边建立了文件夹abc,又在abc中建立了xxxjsp那么此时的路径应为>
当一个url过来时,如:>
代码如下:
<% String basepath=requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort() ;
String Path = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/"+requestgetContextPath()+"/";
String uri=requestgetRequestURI();
uri=urisubstring(urilastIndexOf("/")+1); //获得是最后的hellojsp
%>
(上例中,Path路径就是图中的)
说明:
1requestgetContextPath() 返回站点的根目录,如:‘’/demo‘’
2requestgetRealpath("/")得到的是实际的物理路径,也就是你的项目所在服务器中的路径
3requestgetScheme() 等到的是协议名称,默认是>
4requestgetServerName() 得到的是在服务器的配置文件中配置的服务器名称 比如:localhost baiducom 等等
5requestgetServerPort() 得到的是服务器的配置文件中配置的端口号 比如 8080等等
OK,满意的话请好评!O(∩_∩)O~
你可以在indexjsp里面写一段js来控制页面的跳转
<script language="javascript" type="text/javascript">windowlocationhref="welcomejsp";
</script>
以上就是关于JSP通过超链接下载文件全部的内容,包括:JSP通过超链接下载文件、vue.js npm run dev的时候提示完成却没有端口号、在jsp当中定义String path = request.getContextPath(); 点击request查询信息时找不到路径,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)