java、javascript實現附件下載樣本,javajavascript
在web開發中,經常需要開發“下載”這一模組,以下給出一個簡單的例子。
在伺服器端,使用java開發:
@RequestMapping(value = "download.html", method = RequestMethod.GET) public void download(String resourceid, HttpServletRequest request, HttpServletResponse response) { response.setContentType("charset=UTF-8"); File file = new File(path); response.setHeader("Content-Disposition", "attachment; filename=a"); BufferedInputStream bis = null; BufferedOutputStream bos = null; OutputStream fos = null; InputStream fis = null; try { fis = new FileInputStream(file.getAbsolutePath()); bis = new BufferedInputStream(fis); fos = response.getOutputStream(); bos = new BufferedOutputStream(fos); int bytesRead = 0; byte[] buffer = new byte[5 * 1024]; while ((bytesRead = bis.read(buffer)) != -1) { bos.write(buffer, 0, bytesRead); } bos.flush(); }catch(E e){ }finally { try { bis.close(); bos.close(); fos.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
當我們在前端請求這個地址時,伺服器先找出檔案,設定回應標頭,然後通過流輸出到瀏覽器端。
瀏覽器在頭中發現該響應的主體是流檔案,則自動會調用另存新檔的視窗,讓使用者儲存下載。
這裡有個關鍵就是Content-Disposition這個頭屬性,Content-Disposition是MIME協議的擴充,用於指示如何讓用戶端顯示附件的檔案。
它可以設定為兩個值:
inline //線上開啟
attachment //作為附件下載
這裡我們設定的值為attachment,所以可以被識別為附件並下載。
上面講了如何寫伺服器端,下面講前端如何請求。
前端請求有三種方式:
1.Form
<form action='download.html' method='post'> <input type='submit'/> </form>
2.iframe
var iframe = "<iframe style='display:none' src='download.html'></iframe>" body.append(iframe);
當iframe被append到body中時,會自動請求下載連結。
3.open
window.open("download.html");
jsp中java與javascript是什關係?jsp檔案中可以同時嵌入java與javascript語句?最好舉個例子,
JAVASCRIPT從其名稱含義是JAVA指令碼,是在瀏覽器中啟動並執行指令碼語言,由於其大部分文法規範取自於JAVA文法規範,
所以取名為JAVASCRIPT。JAVASCRIPT是一門基於對象的弱類型指令碼程式設計語言,主要用來製作網頁前台的技術.
並且是現在比較熱門的AJAX技術的核心.
JSP是JAVA SERVER PAGE的首字母縮寫,顧名思義,是JAVA的服務端頁面,其動態文法部分完全是JAVA規範。
JAVA的概念這裡就不描述了。JSP是和ASP,PHP一樣的伺服器端語言,主要用來製作網站背景技術.
JAVA是和C/C++一個等級的強型別程式設計語言,是純物件導向的.比起JSP和JAVASCRIPT要複雜的多.
一般學好JAVA就能很容易轉向其他兩門語言.
總結:
JSP是JAVA技術的其中之一,所以學好了JAVA過渡到JSP從編程角度來講比較容易,學好JSP以後要想學好JAVA,就還要學習更多的JAVA方面的東西,比如JAVABEAN,企業級應用等等。
JAVASCRIPT嚴格來講,除了文法參照了JAVA文法規範外,和JAVA毫無關係,所以兩者之間只是文法規範類似,
相互之間的過渡就只有文法能夠參照,其他的都得分別去瞭解,JAVASCRIPT是過程式語言,JAVA則是物件導向的。
<html>
<head></head>
<script>
<% java.util.List list = (java.util.List)request.getAttribute("list")%>//這句話是用java去後台取出list到前台。
function listener(){ //這句用到了js
alert("你好,你單機了這個按鈕");
}
</script>
<body>
list的長度為: <input type="text" value="<%= list.size() %>">
<input type=“button” onclick="listener();" name=“點擊我”>
</body>
</html>
不明白可以私信我。
問在java中怎實現附件上傳?(最好有簡單的代碼)
用strus2比較簡單,百度輸入struts2上傳下載,有很多例子,並附帶代碼,直接考下來就行,我就不貼代碼了