最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

struts2實現(xiàn)文件下載功能

 更新時間:2017年03月27日 16:15:17   作者:hzc543806053  
這篇文章主要為大家詳細介紹了struts2實現(xiàn)文件下載功能,一個非常常見的功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

文件下載是一個很常見的功能,用struts2實現(xiàn)文件下載的步驟:

一)、定義一個Action類,F(xiàn)ileDownload.java

package com.struts2.filedownload; 
import java.io.InputStream;  
import org.apache.struts2.ServletActionContext;  
import com.opensymphony.xwork2.ActionSupport; 
 
//文件下載 
public class FileDownload extends ActionSupport{ 
  
 private int number ; 
 
 private String fileName; 
 
 public int getNumber() { 
  return number; 
 } 
 
 public void setNumber(int number) { 
  this.number = number; 
 } 
  
 public String getFileName() { 
  return fileName; 
 } 
 
 public void setFileName(String fileName) { 
  this.fileName = fileName; 
 } 
 
 //返回一個輸入流,作為一個客戶端來說是一個輸入流,但對于服務(wù)器端是一個 輸出流 
 public InputStream getDownloadFile() throws Exception 
 { 
  if(1 == number) 
  { 
   this.fileName = "Dream.jpg" ; 
   //獲取資源路徑 
   return ServletActionContext.getServletContext().getResourceAsStream("upload/Dream.jpg") ; 
  } 
   
  else if(2 == number) 
  { 
   this.fileName = "jd2chm源碼生成chm格式文檔.rar" ; 
   //解解亂碼 
   this.fileName = new String(this.fileName.getBytes("GBK"),"ISO-8859-1"); 
   return ServletActionContext.getServletContext().getResourceAsStream("upload/jd2chm源碼生成chm格式文檔.rar") ; 
  } 
  else 
   return null ; 
 } 
  
 @Override 
 public String execute() throws Exception { 
   
  return SUCCESS; 
 } 
 
} 

二)、在struts.xml文件中配置相關(guān)信息

<struts>  
 <package name="struts2" extends="struts-default">  
  <action name="FileDownload" class="com.struts2.filedownload.FileDownload"> 
   <result name="success" type="stream"> 
    <param name="contentType">text/plain</param> 
    <param name="contentDisposition">attachment;fileName="${fileName}"</param> 
    <param name="inputName">downloadFile</param> 
    <param name="bufferSize">1024</param> 
   </result> 
  </action> 
  
 </package> 
  
</struts> 

1.結(jié)果類型必須要寫成 type="stream"  ,與之對應(yīng)的處理類是 org.apache.struts2.dispatcher.StreamResult

2.涉及到的參數(shù):

3.

1)  <param name="contentDisposition">attachment;fileName="${fileName}"</param>
     contentDisposition默認是 inline(內(nèi)聯(lián)的), 比如說下載的文件是文本類型的,就直接在網(wǎng)頁上打開,不能直接打開的才會打開下載框自己選擇
2)  attachment :下載時會打開下載框
3)  fileName="${fileName}" :在這定義的名字是一個動態(tài)的,該名字是顯示在下載框上的文件名字

4. <param name="inputName">downloadFile</param> ,這個downloadFile名字要和FileDownload.java類中的getDownloadFile()方法名去掉get 一致

三)用于顯示下載的鏈接界面 filedownload.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" > 
  
 <title>My JSP 'filedownload.jsp' starting page</title> 
  
 <meta http-equiv="pragma" content="no-cache"> 
 <meta http-equiv="cache-control" content="no-cache"> 
 <meta http-equiv="expires" content="0">  
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
 <meta http-equiv="description" content="This is my page"> 
 <!-- 
 <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" > 
 --> 
 
 </head> 
 
 <body> 
 
 <h2>文件下載內(nèi)容:</h2><br/> 
 Dream.jpg:<a href="FileDownload.action?number=1" rel="external nofollow" >點擊下載</a><br/> 
 jd2chm源碼生成chm格式文檔.rar:<a href="FileDownload.action?number=2" rel="external nofollow" >點擊下載2</a> 
  
  
 </body> 
</html> 

文件上傳鏈接:
1)Servlet 文件上傳: 點擊打開鏈接
2)Struts2 文件上傳:點擊打開鏈接

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 對Java中JSON解析器的一些見解

    對Java中JSON解析器的一些見解

    這篇文章主要是對Java中JSON解析器的一些見解。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • Java的函數(shù)方法詳解(含漢諾塔問題)

    Java的函數(shù)方法詳解(含漢諾塔問題)

    漢諾塔問題是一個經(jīng)典的遞歸問題,下面這篇文章主要給大家介紹了關(guān)于Java函數(shù)方法(含漢諾塔問題)的相關(guān)資料,文中通過圖文以及代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • springCloud中的Sidecar多語言支持詳解

    springCloud中的Sidecar多語言支持詳解

    這篇文章主要介紹了springCloud中的Sidecar多語言支持詳解,Sidecar是將一組緊密結(jié)合的任務(wù)與主應(yīng)用程序共同放在一臺主機Host中,但會將它們部署在各自的進程或容器中,需要的朋友可以參考下
    2024-01-01
  • spring cloud整合ribbon問題及解決方案

    spring cloud整合ribbon問題及解決方案

    很多小伙伴在整合ribbon都出了相同的問題,今天特地為大家整理了該問題的解決方案,文中有非常詳細的圖文解說,對出現(xiàn)同樣問題的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Java實戰(zhàn)之用hutool-db實現(xiàn)多數(shù)據(jù)源配置

    Java實戰(zhàn)之用hutool-db實現(xiàn)多數(shù)據(jù)源配置

    在微服務(wù)搭建中經(jīng)常會使用到多數(shù)據(jù)庫情形這個時候,下面這篇文章主要給大家介紹了關(guān)于Java實戰(zhàn)之用hutool-db實現(xiàn)多數(shù)據(jù)源配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • mybatis中的if-else及if嵌套使用方式

    mybatis中的if-else及if嵌套使用方式

    這篇文章主要介紹了mybatis中的if-else及if嵌套使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • MyBatis-plus實現(xiàn)逆向生成器

    MyBatis-plus實現(xiàn)逆向生成器

    本文主要介紹了MyBatis-plus實現(xiàn)逆向生成器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 淺談java異常鏈與異常丟失

    淺談java異常鏈與異常丟失

    下面小編就為大家?guī)硪黄獪\談java異常鏈與異常丟失。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • SpringBoot開發(fā)實戰(zhàn)系列之定時器

    SpringBoot開發(fā)實戰(zhàn)系列之定時器

    定時任務(wù)我想諸位童鞋都不陌生,簡而言之名為“設(shè)定定時鬧鐘做某件事情”,下面這篇文章主要給大家介紹了關(guān)于SpringBoot定時器的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • gradle構(gòu)建工具和java不兼容錯誤的解決方案

    gradle構(gòu)建工具和java不兼容錯誤的解決方案

    這篇文章主要介紹了如何解決AS中Gradle和Java版本不兼容的問題,主要解決方案包括升級Gradle版本或降級Java版本,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02

最新評論

九江县| 苏尼特左旗| 玛曲县| 神木县| 获嘉县| 紫金县| 阳城县| 齐齐哈尔市| 榆树市| 洪雅县| 来安县| 伊金霍洛旗| 疏勒县| 克拉玛依市| 东辽县| 莲花县| 淮北市| 德庆县| 河间市| 渭源县| 武山县| 牙克石市| 电白县| 响水县| 宝山区| 保定市| 阿勒泰市| 桐梓县| 鹤壁市| 安化县| 乌恰县| 佛冈县| 岢岚县| 潮安县| 共和县| 青川县| 浦江县| 北川| 和田市| 广宁县| 吴旗县|