2016-11-21 10 views
0

POSTを実行したときにセッションが失われる理由を見つけようとしています。POSTでセッションが失われる

私のアプリケーション全体を通してセッションをチェックしていますが、特定のサーブレットを呼び出すとセッションがドロップされ、この特定のサーブレットだけがドロップされます。問題は断続的なので非常にイライラしています。私は何が必要なのか分からないので、できるだけ多くの情報を載せます。

ページにはサーブレットを介してアクセスします。セッションがまだ同じであることを確認できます。

ユーザーがアプリケーションを経由しているので、セッションがまだ同じであることがわかります。

チェックセッション:HTTPセッションCEHKIIMEKHMH 呼び出す詳細 をゲットチェックセッション:HTTPセッションCEHKIIMEKHMH 呼び出すプロジェクトの詳細 チェックセッション:HTTPセッションCEHKIIMEKHMH 呼び出しアタッチメントコントローラー チェックセッション:HTTPセッションCEHKIIMEKHMH

public class Attachments extends HttpServlet { 
 
\t private static final long serialVersionUID = 1L; 
 
     
 
\t protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
 
\t 
 
\t \t System.out.println("Calling Attachment Controller"); 
 
\t \t HttpSession session = request.getSession(false); 
 
\t \t System.out.println("Checking Session:"+session); 
 
\t \t 
 
\t \t if(session != null){ 
 
\t \t \t Object projectId = session.getAttribute("projectId"); 
 
\t \t \t request.getRequestDispatcher(response.encodeURL("views/attachments.jsp")).forward(request, response); 
 
\t \t }else{ 
 
\t \t \t System.err.println("Invalid session"); 
 
\t \t \t response.sendRedirect("/"); 
 
\t \t } 
 
\t \t \t \t 
 
\t } 
 

 
}

私のフォームの転記です。私が検証を実行した後、フォームは実際にjavascriptを介して提出され、私は単に$( '#files).submit();を呼び出します。それが本当に重要かどうかはわかりません。

<form id="files" name="files" method="POST" action="FileUpload" enctype="multipart/form-data">

彼らが投稿した瞬間、セッションが チェックセッションのアップロードファイルを呼び出す

を失っている:ヌルここ ヌル

がサーブレット

の始まりです

\t protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
 
\t \t 
 
\t \t System.out.println("Calling File Upload"); 
 
\t \t HttpSession session = request.getSession(false); 
 
\t \t System.out.println("Checking Session:"+session); 
 
\t \t 
 
\t \t if(session != null){ 
 
\t \t \t Object projectId = session.getAttribute("projectId"); \t \t 
 
\t \t \t System.out.println("Accessing File Upload: Session is valid"); 
 

これは全面的に同じ方法です。私は問題が何であるか分かりません。

+0

これは、マルチパートフォーム要求による可能性があります。マルチパートリクエストを使わずに別のサーブレットdoPostを試して、まだセッションが表示されているかどうかを確認できますか? – amitmah

+0

この問題は、開発時に発生するのでしょうか、あるいは両方(開発と生産)で発生しますか? –

+0

現在、これは開発段階でのみ起こっています。私はこの問題のために生産に移行していません。私はあなたの提案を試して、それがまだ起こっているかどうかを見てみましょう。 – user3183411

答えて

0

私はこの問題を絞り込んだが、まだ解決していない。それは私のリダイレクト中に起こります。私はURLを正しくエンコードしていませんでした。私はfolowingを持っているすべての私のリダイレクトを変更しました:

\t \t \t request.getRequestDispatcher(response.encodeRedirectURL("views/attachments.jsp")).forward(request, response);

これが唯一しかし、サーバー側でそれを解決し、私はクライアントからのリダイレクトを処理していたときにソリューションを提供していません。

+0

すぐに話してください。問題はまだ発生!!!! – user3183411

関連する問題