0

基本的な ajax アプリケーションに jsp/サーブレットを使用しています。サーブレットでセッションを設定していますが、null が返されます。次のように私のコードスニペット:

サーブレット:

protected void doPost(HttpServletRequest request, HttpServletResponse response)         throws  ServletException, IOException {

    String name=null;
    String sessionStrSet = null;


    if(request.getParameter("session").toString().equals("setSession")){

         name = request.getParameter("user");

         HttpSession session = request.getSession(true);
         session.setAttribute("sessionPw", name);
         sessionStrSet = session.getAttribute("sessionPw").toString();

         response.setContentType("text/plain");  
         response.setCharacterEncoding("UTF-8"); 
         response.getWriter().write(sessionStrSet + " " + "data write");

    }

    if(request.getParameter("session").toString().equals("getSession")){
        //how do i retrieve the session data here?
        response.setContentType("text/plain");  
        response.setCharacterEncoding("UTF-8"); 
        response.getWriter().write(sessionStrSet + "get session");
    }


}

ajax は正常に動作します。問題と思われるのはセッションの取得だけです。最初の if() で設定されたデータを取得できます。しかし、別の投稿リクエストを行うと、null として返されます。別の HttpSession が必要ですか? 私はJSPではなくPHP開発者なので、とても新しいです。

4

1 に答える 1

1

本当に個別のifが必要ですか?

getSession(true)現在のセッションを返すか、現在のセッションがない場合は新規作成します。

ドキュメントhttp://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getSession%28boolean%29を参照してください。

于 2013-03-19T16:28:48.720 に答える