国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java Servlet簡單實例分享(文件上傳下載demo)

Java Servlet簡單實例分享(文件上傳下載demo)

2020-11-02 17:39Java教程網 Java教程

下面小編就為大家帶來一篇Java Servlet簡單實例分享(文件上傳下載demo)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

項目結構

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
src
  com
    servletdemo
        DownloadServlet.java
        ShowServlet.java
        UploadServlet.java
        
WebContent
  jsp
    servlet
        download.html
        fileupload.jsp
        input.jsp
        
  WEB-INF
    lib
        commons-fileupload-1.3.1.jar
        commons-io-2.4.jar

1.簡單實例

ShowServlet.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.servletdemo;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class ShowServlet
 */
@WebServlet("/ShowServlet")
public class ShowServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
  PrintWriter pw=null
  /**
   * @see HttpServlet#HttpServlet()
   */
  public ShowServlet() {
    super();
    // TODO Auto-generated constructor stub
  }
 
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    this.doPost(request, response);
  }
 
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    request.setCharacterEncoding("gb2312");
    response.setContentType("text/html;charset=gb2312");
    pw=response.getWriter();
    String name=request.getParameter("username");
    String password=request.getParameter("password");
    pw.println("user name:" + name);
    pw.println("<br>");
    pw.println("user password:" + password);
  }
 
}

input.jsp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>servlet demo</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/ShowServlet">
    <table>
      <tr>
        <td>name</td>
        <td><input type="text" name="username"></td>
      </tr>
      <tr>
        <td>password</td>
        <td><input type="text" name="password"></td>
      </tr>
      <tr>
        <td><input type="submit" value="login"></td>
        <td><input type="reset" value="cancel"></td>
      </tr>
    </table>
  </form>
</body>
</html>

2.文件上傳實例

UploadServlet.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
package com.servletdemo;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.ProgressListener;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
 * Servlet implementation class UploadServlet
 */
@WebServlet("/servlet/UploadServlet")
public class UploadServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  /**
   * @see HttpServlet#HttpServlet()
   */
  public UploadServlet() {
    super();
    // TODO Auto-generated constructor stub
  }
 
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //設置編碼
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter pw = response.getWriter();
    try {
      //設置系統環境
      DiskFileItemFactory factory = new DiskFileItemFactory();
      //文件存儲的路徑
      String storePath = getServletContext().getRealPath("/WEB-INF/files");
      //判斷傳輸方式 form enctype=multipart/form-data
      boolean isMultipart = ServletFileUpload.isMultipartContent(request);
      if(!isMultipart)
      {
        pw.write("傳輸方式有錯誤!");
        return;
      }
      ServletFileUpload upload = new ServletFileUpload(factory);
      upload.setFileSizeMax(4*1024*1024);//設置單個文件大小不能超過4M
      upload.setSizeMax(4*1024*1024);//設置總文件上傳大小不能超過6M
      //監聽上傳進度
      upload.setProgressListener(new ProgressListener() {
 
        //pBytesRead:當前以讀取到的字節數
        //pContentLength:文件的長度
        //pItems:第幾項
        public void update(long pBytesRead, long pContentLength,
            int pItems) {
          System.out.println("已讀去文件字節 :"+pBytesRead+" 文件總長度:"+pContentLength+"  第"+pItems+"項");
           
        }
      });
      //解析
      List<FileItem> items = upload.parseRequest(request);
      for(FileItem item: items)
      {
        if(item.isFormField())//普通字段,表單提交過來的
        {
          String name = item.getFieldName();
          String value = item.getString("UTF-8");
          System.out.println(name+"=="+value);
        }else
        {
//         String mimeType = item.getContentType(); 獲取上傳文件類型
//         if(mimeType.startsWith("image")){
          InputStream in =item.getInputStream();
          String fileName = item.getName(); 
          if(fileName==null || "".equals(fileName.trim()))
          {
            continue;
          }
          fileName = fileName.substring(fileName.lastIndexOf("\\")+1);
          fileName = UUID.randomUUID()+"_"+fileName;
           
          //按日期來建文件夾
          String newStorePath = makeStorePath(storePath);
          String storeFile = newStorePath+"\\"+fileName;
          OutputStream out = new FileOutputStream(storeFile);
          byte[] b = new byte[1024];
          int len = -1;
          while((len = in.read(b))!=-1)
          {
             out.write(b,0,len);    
          }
          in.close();
          out.close();
          item.delete();//刪除臨時文件
        }
       }
//     }
    }catch(org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException e){ 
       //單個文件超出異常
      pw.write("單個文件不能超過4M");
    }catch(org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException e){
      //總文件超出異常
      pw.write("總文件不能超過6M");
       
    }catch (FileUploadException e) {
      e.printStackTrace();
    }
  }
 
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
  
  private String makeStorePath(String storePath) {
    
    Date date = new Date();
    DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
    String s = df.format(date);
    String path = storePath+"\\"+s;
    File file = new File(path);
    if(!file.exists())
    {
      file.mkdirs();//創建多級目錄,mkdir只創建一級目錄
    }
    return path;
      
  }
  private String makeStorePath2(String storePath, String fileName) {
    int hashCode = fileName.hashCode();
    int dir1 = hashCode & 0xf;// 0000~1111:整數0~15共16個
    int dir2 = (hashCode & 0xf0) >> 4;// 0000~1111:整數0~15共16個
   
    String path = storePath + "\\" + dir1 + "\\" + dir2; // WEB-INF/files/1/12
    File file = new File(path);
    if (!file.exists())
      file.mkdirs();
   
    return path;
  }
 
}

fileupload.jsp

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  pageEncoding="ISO-8859-1"%>
 
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Upload File Demo</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/servlet/UploadServlet" method="post" enctype="multipart/form-data">
  user name<input type="text" name="username"/> <br/>
  <input type="file" name="f1"/><br/>
  <input type="file" name="f2"/><br/>
  <input type="submit" value="save"/>
 </form>
</body>
</html>

3.文件下載實例

DownloadServlet.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package com.servletdemo;
 
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
 
 
 
import java.net.URLEncoder;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletResponse;
 
/**
 * Servlet implementation class DownloadServlet
 */
@WebServlet("/DownloadServlet")
public class DownloadServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  /**
   * @see HttpServlet#HttpServlet()
   */
  public DownloadServlet() {
    super();
    // TODO Auto-generated constructor stub
  }
 
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    download1(response);
  }
 
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
  
  public void download1(HttpServletResponse response) throws IOException{
    //獲取所要下載文件的路徑
     String path = this.getServletContext().getRealPath("/files/web配置.xml");
     String realPath = path.substring(path.lastIndexOf("\\")+1);
   
     //告訴瀏覽器是以下載的方法獲取到資源
     //告訴瀏覽器以此種編碼來解析URLEncoder.encode(realPath, "utf-8"))
    response.setHeader("content-disposition","attachment; filename="+URLEncoder.encode(realPath, "utf-8"));
    //獲取到所下載的資源
     FileInputStream fis = new FileInputStream(path);
     int len = 0;
      byte [] buf = new byte[1024];
      while((len=fis.read(buf))!=-1){
        response.getOutputStream().write(buf,0,len);
      }
   }
 
}

download.html

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Download Demo</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<a href = "/JavabeanDemo/DownloadServlet">download</a>
</body>
</html>

以上這篇Java Servlet簡單實例分享(文件上傳下載demo)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美性网 | 成人精品久久 | 亚洲激情精品 | 中文字幕一二三区 | 伦理午夜电影免费观看 | 亚洲 自拍 另类 欧美 丝袜 | 中文字幕久久伊人 | 国产精品亚洲视频 | 午夜私人影院 | 久久国产精品久久精品国产演员表 | 99精品国产高清一区二区麻豆 | 99热首页 | 美女视频黄色 | 亚洲国产成人精品女人久久久 | 黄片毛片一级 | 污污的免费网站 | 综合久久99 | 一级片视频在线观看 | 午夜私人影院在线观看 | 精品美女久久久 | 日韩欧美在线免费观看 | 天天爽夜夜爽夜夜爽精品视频 | 亚洲免费婷婷 | 亚洲国产精品yw在线观看 | 亚洲欧美在线观看 | 国产亚洲综合一区二区 | 国产视频一区二区三区在线观看 | 日韩高清av | 亚洲视频在线免费观看 | 日韩www | 亚洲一区中文字幕在线观看 | 午夜精品久久久久久久白皮肤 | 自拍在线 | 国产成人在线一区二区 | 一级全黄性色生活片 | 四虎久久精品 | 国产黄| 日韩成人免费中文字幕 | 少妇精品久久久久久久久久 | 韩日一区二区 | 日本黄色a视频 |