こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

サーバー側の処理で、画面遷移速度をアップさせたい。

カテゴリが違いましたら申し訳ございません。


下記ケースの流れの際、標題にある内容を行いたいと思います。

1.HTMLの「input type="file"」項目で、
巨大なファイルを指定しsubmitを行います。

2.次にサーバー側で、「HttpServletRequest.getContentLength」を用いて、
送られてきたリクエストのサイズを取得し、許容する値より大きければ、
「ServletContext.getRequestDispatcher」を行い、「RequestDispatcher.forward」を使用してエラー画面へ遷移する。


ここで、巨大なファイル(500MB程)をアップロードした為か、
画面遷移がとても遅くなってしまいます。
何か改善の手立てはありますでしょうか?

ここで遵守すべき点は、「リクエストサイズが許容値を超えた場合、エラー画面に遷移する。」です。
また、あくまでサーバー側で対応するという点です。
クライアント側で、アップロードファイルサイズ云々で条件を設けることは
できないとして頂きたいと思います。


現在、勉強中である為、
不足となる情報があるかとは存じますが
出来る限り補足致しますので、何卒宜しくお願い致します。

■開発環境■
java 1.4.2
Tomcat/4.1.31

投稿日時 - 2007-12-12 17:40:01

QNo.3592663

困ってます

質問者が選んだベストアンサー

> 画面遷移を行う方法が判らない
サーブレット自身が新ページを出力してもよいし、既存のエラーページへsendRedirect()してもよいです。

投稿日時 - 2007-12-13 20:52:21

補足

返事が遅くなりました。申し訳ございません。

自分なりに調べた結果、以下の3通りの方法があると認識しました。
 ・RequestDispatcher#forward
 ・RequestDispatcher#include
 ・HttpServletResponse#sendRedirect

うち、ご回答頂いたsendRedirectを試してみましたが、
画面遷移はするものの、やはりforwardと同じくらいの時間がかかってしまいました。
sendRedirectの直前では、リクエストオブジェクトの初期化を想定し、NULLを設定しております。

あとは、サーブレット自身でページ出力という方法を調べてみたいと存じます。
(jspファイルをコンパイル後に出来るjavaファイルのようなイメージでしょうか・・・。)

投稿日時 - 2007-12-14 10:13:49

お礼

これ以上はキリがなくなると存じますので、
この質問は以上で締め切らせて頂き、
また新たな問題点があれば、別の質問を起こしたいと存じます。


ご回答頂きましてありがとうございました。
また機会がありましたら、何卒宜しくお願い申しあげます。

投稿日時 - 2007-12-14 10:15:09

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Content-Lengthを見た時点で無視が決定するリクエストなら、forwardしなくてもよいのでは?。forwardする価値がない、というか…。

投稿日時 - 2007-12-12 20:49:19

補足

ご回答頂きましてありがとうございます。

回答者様には愚問かと存じますが、現状のスキルではリクエストを使ってforwardする他、画面遷移を行う方法が判らない状況です。
(forwardを行おうと考えたのは、手本としているソースがそのような処理を行っているかです。)

この無視すべきリクエストオブジェクトを使用せず、画面遷移できる方法を、暫く調べさせて頂きたいので、
それまでは質問を締め切らず、お礼もその時にさせて頂きたいと存じます。

投稿日時 - 2007-12-13 08:41:16

あなたにオススメの質問