JSP通过超链接下载文件

JSP通过超链接下载文件,第1张

JSP页面点击超链接d出文件下载,代码如下:

<%

String path = requestgetContextPath();

String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";

%>

//然后

<a href ="<%= basePath %>/upload/aadoc }" target="_blank">下&nbsp;&nbsp;载</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查询信息时找不到路径,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9809592.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存