<ahref="DownloadServlet?fileName=殷志源03.jpg">ダウンロード写真</a>に
パッケージorg.student.servlet; インポートのjava.io.File; 輸入java.io.FileInputStream; インポートにjava.io.IOException; 輸入java.io.InputStreamを。 輸入javax.servlet.ServletException; インポートのjavax.servlet.ServletOutputStream。 輸入javax.servlet.annotation.WebServlet; 輸入javax.servlet.http.HttpServlet。 インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; 輸入org.apache.commons.io.IOUtils。 / ** *サーブレット実装クラスするDownloadServlet * / @WebServlet("/するDownloadServlet" ) パブリック クラスするDownloadServletが延びHttpServletを{ プライベート 静的 最終 長いのserialVersionUID = 1L 。 / ** * @see のHttpServlet#HttpServletを() * / パブリックするDownloadServlet(){ スーパー(); // TODO自動生成されたコンストラクタスタブ } / ** * @see のHttpServlet#のdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答) * / 保護された 無効doGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)スローServletExceptionがは、IOException { //を1符号化配置。 ( "UTF-8" Request.setCharacterEncoding ); // 2は、ダウンロードしたファイル名を取得する 文字列fileNameに= request.getParameter( "ファイル名" )。 // メッセージのヘッダーを設定する必要が3つのダウンロードファイルは、現在のダウンロード中国名が文字化け解決することはできません Response.Addheader(「コンテンツタイプ」、「アプリケーション/オクテットストリームを」); // MIMEタイプ:バイナリファイル(任意のファイル) Response.Addheader ( ;「コンテンツディスポジション」、「添付ファイル;ファイル名=」+ fileNameに)// abc.txtという名前:filenameファイルの拡張子が含ま // ファイルの絶対パスを4 ストリングのrealpath = "D:\\ studyJspForUpload \\ newUpload" 。 // 5.创建文件对象 ファイルファイル= 新しいファイル(実パスファイル名); もし(!file.exists()){ 。response.getWriter()書き込み( "文件不存在" ); リターン; } IOUtils.copy(新しいFileInputStreamを(ファイル)、response.getOutputStream())。 } / ** * @see のHttpServlet#のdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答) * / 保護された 無効doPostメソッド(HttpServletRequestのリクエスト、HttpServletResponseの応答)スローServletExceptionがは、IOException { // TODO自動生成方法のスタブ のdoGet(要求、応答)。 } }