亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP網站開發基礎總結《十四》

2019-11-14 23:32:01
字體:
來源:轉載
供稿:網友
jsp網站開發基礎總結《十四》

  對于JSP的知識總結,已經為大家分享的差不多了,本篇就為大家做一下最后總結,本篇總結的主題是文件上傳和下載,在之前的隨筆中也有為大家分享過文件上傳和下載的知識,不過都是通過java提供的上傳下載類實現的,本篇將通過文件輸入輸出流的方式為大家精講一下文件的上傳和下載實現,我相信當你了解了底層的實現后,會很方便你對于文件的上傳和下載進行拓展。好了廢話不多說,下面我們開始本篇的總結。

 1、上傳分析:

  文件上傳就是,我們通過Form表單中的input屬性,向后臺發送用戶需要上傳的文件,后臺當發現用戶發送的請求后,首先將用戶上傳的文件保存到一個臨時文件中,為接下來我們獲取上傳文件名和上傳文件內容做準備。

 2、jsp頁面要求:

  form的method="post"一定要設置為post方式,因為get方式傳輸,首先他是一種不安全的傳輸,其次它傳輸的內容大小有限,不能傳輸大量的數據。然后我們要修改enctype="multapplication/x-www-form-urlencoded。具體的代碼:

<%@ 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%>">        <title>上傳文件</title>    <meta http-equiv="Words" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/CSS" href="styles.css">    -->  </head>    <body>    <center>        <h1>文件上傳</h1>        <form action="<%=request.getContextPath() %>/servlet/ShangChuan" method="post" enctype="multipart/form-data">        選擇上傳文件:<input type="file" name="file" id="file"/><input type="submit" value="上傳"><span style="color: red">${news }</span>        </form>    </center>  </body></html>

 3、后臺servlet:

  第一步:把用戶上傳的文件保存的一個臨時文件

     InputStream fileSource = request.getInputStream();        String tempFileName = "F:/VEVb/text";                File tempFile = new File(tempFileName);        FileOutputStream outputStream = new FileOutputStream(tempFile);        byte [] b = new byte[2048];        int n;        while((n = fileSource.read(b))!=-1){            outputStream.write(b, 0, n);        }        //關閉輸入、輸出流        outputStream.flush();        outputStream.close();        fileSource.close();

  第二步:通過獲取臨時文件中的內容來捕獲用戶上傳文件的名字和內容區域的位置

//獲取上傳文件的名稱        RandomaccessFile randomFile = new RandomAccessFile(tempFile, "r");        randomFile.readLine();        String str = randomFile.readLine();        int beginIndex = str.lastIndexOf("=/"")+2;        int endIndex = str.lastIndexOf("/"");        String fileName = str.substring(beginIndex, endIndex);        System.out.println("fileName:"+fileName);        //重新定位文件指針到文件頭        randomFile.seek(0);        long startPosition = 0;        int i = 1;        //獲取文件內容開始位置        while((n=randomFile.readByte())!=-1&&i<=4){            if(n=='/n'){                startPosition = randomFile.getFilePointer();                i++;            }        }        startPosition = startPosition-1;        //獲取文件內容到結束位置        randomFile.seek(randomFile.length());        long endPosition = randomFile.getFilePointer();        int j = 1;        while(endPosition>=0&&j<=2){            endPosition--;            randomFile.seek(endPosition);            if(randomFile.readByte()=='/n'){                j++;            }        }        endPosition = endPosition-1;                //設置保存文件的路徑        String realPath = getServletContext().getRealPath("/")+"images";        File fileupload = new File(realPath);        if(!fileupload.exists()){            fileupload.mkdir();        }        File saveFile = new File(realPath, fileName);        RandomAccessFile randomAccessFile = new RandomAccessFile(saveFile, "rw");        //從臨時文件當中讀取文件內容(根據起止位置獲取)        randomFile.seek(startPosition);        while(startPosition<endPosition){            randomAccessFile.write(randomFile.readByte());            startPosition = randomFile.getFilePointer();        }        //關閉輸入、輸出流,刪除臨時文件        randomAccessFile.close();        randomFile.close();        tempFile.delete();        request.setAttribute("news", "文件上傳成功");        request.getRequestDispatcher("/index.jsp").forward(request, response);

  這里是通過String類的LastIndexOf()方法和subString()方法來獲得我們需要的內容。到這里我們的上傳就實現了,下面我們來一起學習一下下載的工程。

 4、下載的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%>">        <title>文件下載</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">    -->  </head>    <body>    <center>        <h1>文件下載操作</h1>        <a href="<%=request.getContextPath() %>/servlet/download?filename=text.txt" >Text.txt</a><span style="color: red">${news }</span>    </center>  </body></html>

 5、后臺servlet:

public class download extends HttpServlet {        public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        //獲取文件下載路徑        String path = getServletContext().getRealPath("/")+"images/";        String filename = request.getParameter("filename");        File file = new File(path+filename);        if(file.exists()){            //設置相應的類型            response.setContentType("application/x-msdownload");            //設置頭信息            response.setHeader("content-Disposition", "attachment;filename=/""+filename+"/"");            InputStream input = new FileInputStream(file);            ServletOutputStream output = response.getOutputStream();            byte[] b = new byte[2048];            int n;            while((n=input.read(b))!=-1){                output.write(b, 0, n);            }            //關閉流對象            output.close();            input.close();        }else{            request.setAttribute("news", "文件不存在,下載失敗。");            request.getRequestDispatcher("/MyJsp.jsp").forward(request, response);        }    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doGet(request, response);    }}

  這下我們的文件上傳和下載已經實現了,當然這些都是最基本的東西,大家可以發揮自己腦力進行拓展,到今天關于JSP的總結為大家分享完畢了,大家如有疑問請留言討論。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品制服第一页| 日韩中文字幕亚洲| 亚洲视频777| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久国产视频91| 欧美成人亚洲成人日韩成人| 97久久精品人人澡人人爽缅北| 亚洲免费高清视频| 日韩中文在线中文网在线观看| 国产精品视频一区二区三区四| 92看片淫黄大片看国产片| 亚洲男人天堂网| 亚洲男人天堂视频| 国产免费一区视频观看免费| 久久久久久久久久亚洲| 国产日本欧美一区二区三区| 一区二区三区回区在观看免费视频| 成人av色在线观看| 国产精品成人免费电影| 国产精品99久久久久久久久久久久| 成人写真视频福利网| 精品国产成人av| 国产大片精品免费永久看nba| 成人免费视频a| 亚洲免费伊人电影在线观看av| 777777777亚洲妇女| 国产情人节一区| 国产在线观看精品一区二区三区| 亚洲伊人第一页| 亚洲欧美中文日韩v在线观看| 久久精品久久久久电影| 亚洲人在线观看| 欧美精品在线免费播放| 亚洲精品免费在线视频| 精品亚洲一区二区三区在线播放| 欧美裸体男粗大视频在线观看| 97在线看福利| 岛国av一区二区| 国产精品久久久久久久av电影| 国产精品网红福利| 日韩在线观看高清| 中文字幕精品在线| 综合网中文字幕| 隔壁老王国产在线精品| 最近中文字幕日韩精品| 日韩三级成人av网| 日产精品久久久一区二区福利| 92版电视剧仙鹤神针在线观看| 在线成人免费网站| 狠狠色狠狠色综合日日小说| 久久久久久中文字幕| 91在线免费观看网站| 国产精品嫩草影院一区二区| 91精品在线国产| 国产午夜精品全部视频播放| 久久97久久97精品免视看| 国产有码在线一区二区视频| 国内精品久久久久| 九九久久综合网站| 国产亚洲精品久久| 欧美亚洲国产日韩2020| 成人av.网址在线网站| 久久99国产精品久久久久久久久| 成人黄色片在线| 亚洲va国产va天堂va久久| www.亚洲人.com| 欧美午夜www高清视频| 成人有码在线视频| 深夜福利91大全| 日韩电影中文字幕一区| 欧美性色19p| 亚洲欧洲高清在线| 国内精品中文字幕| 欧美视频在线观看免费| 亚洲人成电影网站色| 国产亚洲精品久久久优势| 亚洲精品久久久久国产| 欧美风情在线观看| 亚洲免费成人av电影| 日韩精品视频在线观看免费| 91精品国产成人| 欧美激情视频网站| 精品视频偷偷看在线观看| 国产丝袜一区视频在线观看| 亚洲第一精品久久忘忧草社区| 亚洲石原莉奈一区二区在线观看| 91香蕉嫩草神马影院在线观看| 久久久久日韩精品久久久男男| 精品在线观看国产| 亚洲少妇激情视频| 欧美大尺度在线观看| 精品日韩视频在线观看| 国产丝袜一区二区三区免费视频| 日日骚久久av| 欧美成人午夜激情在线| 国产日韩一区在线| 97精品一区二区视频在线观看| 国产欧美中文字幕| 日韩av在线看| 久久精品99久久久久久久久| 日韩人体视频一二区| 91亚洲国产成人精品性色| 欧美日韩在线免费| 国产成人av在线播放| 国产精品久久久久秋霞鲁丝| 国产亚洲激情视频在线| 成人国内精品久久久久一区| 欧美亚洲视频在线观看| 久久久久久中文| 欧美激情视频在线| 国产精品久久精品| 亚洲午夜激情免费视频| 国产精品欧美激情在线播放| 色香阁99久久精品久久久| 亚洲精品一区二区久| 国产91在线播放九色快色| 成人免费激情视频| 亚洲欧洲午夜一线一品| 国产精品欧美激情在线播放| 亚洲精品久久久久久下一站| 亚洲黄一区二区| 亚洲国产99精品国自产| 国产亚洲美女精品久久久| 黄色精品一区二区| 国产精品久久久久7777婷婷| 久热精品在线视频| 国产主播欧美精品| 91麻豆桃色免费看| 亚洲免费伊人电影在线观看av| 日韩精品免费在线视频| 欧美成人精品xxx| 亚洲性线免费观看视频成熟| 久久中文字幕国产| 色狠狠av一区二区三区香蕉蜜桃| 自拍偷拍亚洲一区| 欧美国产精品va在线观看| 国产精品av在线| 日韩电影中文字幕在线观看| 国产精品免费久久久久久| 欧美一级大片在线免费观看| 成人国产精品免费视频| 国产精品成人观看视频国产奇米| 国产精品久久久久免费a∨大胸| 黄色一区二区三区| 欧美大片网站在线观看| 亚洲精品国产成人| 久久亚洲春色中文字幕| 欧美小视频在线观看| 中文字幕日韩视频| 韩国一区二区电影| 亚洲丝袜在线视频| 欧美激情图片区| 国色天香2019中文字幕在线观看| 日韩免费电影在线观看| 九九九久久国产免费| 精品久久久久久亚洲精品| 亚洲综合第一页| 一夜七次郎国产精品亚洲| 丝袜亚洲欧美日韩综合| 国内精品视频在线| 亚洲免费视频网站| 日韩a**站在线观看| 久久免费国产视频| 日韩av影院在线观看|