2016-09-27 7 views
-1

サーブレットでクッキーを作成し、response()に追加してDisaptcherServletを使用して別のサーブレットに転送し、request.getCookies )。しかし、これは常にヌルに出てくる。要求ディスパッチャを使用してあるサーブレットから別のサーブレットに要求を転送する

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

String userName = request.getParameter("username"); 
String password = request.getParameter("password"); 

Cookie cookie = new Cookie("name", "value"); 
cookie.setMaxAge(30); 
response.addCookie(cookie); 

if(userName.equals("username") && password.equals("*****")){ 

RequestDispatcher requestDispatcher = request.getRequestDispatcher("/Welcome"); 
requestDispatcher.forward(request, response); 
} 
else{ 
System.out.println("invalid credentials"); 
} 
} 

//welcome servlet 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
Cookie [] cookie = request.getCookies(); 

if(cookie != null){ 
System.out.println("sucess"); 
} 
else{ 
System.out.println("cookieis null"); 
} 
} 

答えて

1

リクエストを転送すると、「このリクエストを処理したくない」という基本的な言い方があります。これは、転送された要求が元の要求と同じ要求と応答を使用することを意味します。

サンプルサーブレットでは、応答オブジェクトにCookieを設定するAPIがないため、ウェルカムサーブレットはアクセスできません。このパターンのサーブレットが必要な場合は、歓迎サーブレットがリクエストオブジェクトから取得できるパラメータをリクエストオブジェクトに設定する必要があります。

関連する問題