java如何实现超链接下载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何实现超链接下载相关的知识,希望对你有一定的参考价值。

我知道可以在html的页面上通过:
<a href="\upfile\10_后台框架.avi">后台框架2</a>来实现下载。
<注:upfile为我webRoot目录下的资源文件夹>

那么怎么才能把这个改为在servlet中实现呢?
即:通过点击表单按钮:
<form action="downloadManagerEnter.do?handle=DownLoadManagerCtrl_download" method="post">
<input type="text" name="name" value="10_后台框架.avi">
<input type="submit" value="下载">
</form>
然后如何在servlet中实现直接跳转到该链接实现下载?因为我不想用流下载,所以想直接在servlet中跳转。

java实现超链接下载方法如下:

response.setHeader("Content-disposition","attachment;filename="下载的文件名字);

备注:让response调用setheader方法添加下载的头给客户的浏览器,浏览器收到该头后就会打开相应的下载对话框。

参考技术A 直接redirect到这个文件地址就ok了.不使用流容易有盗链~,但流消耗资源太多本回答被提问者采纳 参考技术B 可以使用设置response header的方式来进行下载,让后redirect到其他页面。
http://hi.baidu.com/%B3%A4%D3%C2%5Fzone/blog/item/047ffb5c566fe44bfbf2c0d1.html
这个是asp的,修改下即可。
参考技术C 这个是个Action吧?不过也差不多,跳转的话主要是要先把下载的链接确定,如果是数据库里面的,需要连接数据库获取,然后用request.redirect语句来跳转

java超链接怎么实现?

不是用HTML。
比如说点击“注册”按键就打开一个预先做好的注册的网页;

1.随便在一个文件夹包上右击新建TestLink类,勾选main方法程序,并初始化导入包、继承JFrame窗体等。
2.在main方法中,首先实例化TestLink类,以便测试随时使用。
3.在此类的构造方法(没有如何参数)中,初始化Java窗体,设置窗体的各项属性,用户可适当增加其他属性。

4.运行此类,查看基本的Java窗体是否实现。

5.在构造方法中实例化JLabel类,双引号内的文字为窗体上显示的文字,必须被final修饰,然后添加此类的鼠标监听事件,最后加上“this.add(mBlogSina);”将标签加入到窗体中。
6.运行程序后,如下图所示,JLabel被加入到窗体中。
7.在鼠标监听事件中添加匿名类MouseadAdapter的三个方法。
8.创建如图的URI对象(双引号内为点击链接到的网址),并创建Desktop类,此时发现程序出错,点击“X”添加异常处理并将声明的Desktop类移到声明的uri下方。

9.输入下图if语句执行判断,并输入“dptdtp.browse(uri);”(执行链接操作的方法)时发现重新报错,则执行类似第8步的异常处理。

10.直至此步,运行程序,点击JLabel标签就会自动打开系统默认浏览器转到用户设置的指定网址。

11.下一步在其他两个方法内输入以下语句,实现鼠标移出、移入链接的效果。具体的实现代码,你必须亲自去做。
参考技术A <a hrer="manifest.xml" targer=" ">xml sourxe<a>
<A HREF="文件名或URL" TARGET=目标窗口 >链接文本</A>
target="_blank":在新窗口中浏览新的页面。
target="_self":在同一个窗口打开新的页面。
target="_parent":在父窗口中打开新的页面。(页面中使用框架才有用)
target="_top" :以整个浏览器作为窗口显示新页面。(突破了页面框架的限制)
参考技术B java中没有特有的超链接实现,
都是采用html的。
当然,你如果用的struts,可以用struts标签。
如果用的jstl,可以用jstl标签。
如果用的是struts2.0,可以用ognl。
其实原理都是一样的。
参考技术C 用JS脚本做.

把下面的内容放到BODY里

<SCRIPT language=JavaScript type="">
function pageto()
location.href="Reg.jsp";

</SCRIPT>

<td><input type="button" id="reg" name="reg" value="abc" onclick="pageto()"/></td>
参考技术D 对于JEditorPane,JTextPane,JTextArea,JLabel可以使用
setText("<html><A href='http://www.baidu.com'>test</A></html>")
对于JEditorPane使用
setEditorKitForContentType("text/html", new PatchedHTMLEditorKit());
addHyperlinkListener(HyperlinkListener ... );
==================写一个例子~仅供参考====
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

public class Hyperlink extends JFrame

public Hyperlink()
JEditorPane jEditorPane = new JEditorPane();
jEditorPane.setEditable(false);
jEditorPane.setContentType("text/html");
jEditorPane.setText("<html><body><a href=http://www.baidu.com>baidu</a></body></html>");
jEditorPane.addHyperlinkListener(new HyperlinkListener()

public void hyperlinkUpdate(HyperlinkEvent e)
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
try
String command = "explorer.exe "
+ e.getURL().toString();
Runtime.getRuntime().exec(command);
catch (Exception ex)
ex.printStackTrace();
System.err.println("connection error");





);
this.getContentPane().add(jEditorPane);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);

public static void main(String[] args)
Hyperlink temp = new Hyperlink();
temp.setSize(200,200);
temp.setVisible(true);


本回答被提问者和网友采纳

以上是关于java如何实现超链接下载的主要内容,如果未能解决你的问题,请参考以下文章

java 实现下载

java超链接怎么实现?

求助android开发里,如何部分文字超链接

在一个excel文件里头有1600个PDF的超链接,如何批量下载?

如何实现网页超链接的定位问题

java web文件下载功能实现