2017-09-04 4 views
0

私はHTMLページを記述したJSPを持っています。テーブル内の文書をクリックすると、その文書をデータベースからダウンロードする必要があります。すべてのローカル、クライアント/サーバーのアーキテクチャなし。私が使用している特定のアーキテクチャーには、JSPのみを使用できます。私はストリームを使ってファイルをビルドしますが、ダウンロードしたファイルには元のファイルの内容ではなくJSPが含まれています。どうすれば解決できますか? 注:Javascriptでhrefリンクを使用してファイルをダウンロードしようとしましたが、単純なJSPで動作させることは不可能でした。コード部分:HTMLレスポンスでファイルをダウンロード

` queryGetDoc+= "'"+submit+"'"; 
    resultSet2 = statement2.executeQuery(queryGetDoc); 
    File file = new File(submit); 
    file.createNewFile(); 
     if(resultSet2!=null){     
     FileOutputStream fos = new FileOutputStream(file); 
     resultSet2.first(); 
     InputStream is = resultSet2.getBinaryStream(1);    
     byte[] buf = new byte[4096]; 
     ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
     int read = 0; 
     while ((read = is.read(buf)) > 0) { 
      fos.write(buf, 0, read); 
     } 
     response.setHeader("Content-disposition","attachement; filename="+submit+suffix); 
     response.setContentType("text/plain"); 
     response.setCharacterEncoding("UTF-8");` 

答えて

0

これはJSPではなくウェブホストの問題です。 JSPファイルをJavaサーバーのページファイルとして扱うようにWebホストを構成できます。私の推測では、彼らは単純なリソースファイルのように扱っているということです。

jspファイルをブラウザから直接ロードしようとしているわけではありません。ブラウザはjspファイルを処理しません。 htmlファイルを処理します。 jspファイルは、まずサーバーが変換しなければならないhtmlファイルと考えることができます。

私はあなたが同じコンピュータ上にすべてを持ちたいと思っていますが、これは標準のhttpプロトコルをバイパスできるわけではありません。 まだは、クライアントと同じコンピュータであってもサーバーが必要です。これにはTomcatを使用することをお勧めします。それは自由で軽量で、jspファイルを適切に読み込んですぐに読み込めるなど、仕事を終えることができます。

+0

JSPファイルは、外部ソフトウェアによって呼び出されます。コンパイルされて実行されます。適切な応答でファイルをダウンロードするにはどうすればよいですか? –

+0

@ LucianoSaccoブラウザがJSPを直接表示している場合は、そうでないと主張する必要があります。したがって、あなたのソリューションは、この外部ソフトウェアが適切に構成されているかどうかに依存します。残念ながら、それはこのソフトウェアに依存しており、私はあなたをさらに助けることはできません。 – Neil

+0

申し訳ありませんもっと詳しく説明します。 JSPはコンパイルされ、単純にディスパッチされません。 –

関連する問題