1

クライアントにファイルを送信するサーブレットがあります。ダウンロードを開始してユーザーを別の HTML ページにリダイレクトするために、リダイレクトを追加することは可能ですか? これは私のコードです:

  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            try {
                System.out.println("debut transfert fichier a " + request.getRemoteUser() + "/" + request.getRemoteAddr());

                response.setContentType("text/plain");
                response.setHeader("Content-Disposition",
"attachment;filename=my_file.pdf");
                // ServletContext ctx = getServletContext();
                File jnlp = new File(PATH);
                InputStream is = new FileInputStream(jnlp);

                int read = 0;
                byte[] bytes = new byte[BYTES_DOWNLOAD];
                OutputStream os = response.getOutputStream();

                while ((read = is.read(bytes)) != -1) {
                    os.write(bytes, 0, read);
                }
                 // not workinggetServletContext().getRequestDispatcher("/merci.html").forward(request, response);
                os.flush();

                os.close();
                is.close();
                HttpSession session = request.getSession();
                //    


            } catch (Exception ex) {
                System.out.println("Erreur inconnu lors transfert :" + ex);
            }

ありがとう。

4

1 に答える 1

2

これを回避するより良い方法は、ユーザーを概要/サンキュー ページに送り (ダウンロードへの URL を渡す)、ブラウザを実際のダウンロード URL に「リダイレクト」することです。

ブラウザは「リダイレクト」が新しいページではなくダウンロードへのものであることを認識するため、ユーザーは 2 番目のページにとどまる必要があります。

于 2012-07-17T18:47:18.547 に答える