2017-03-28 1 views
0

내 서버 코드는 다음과 같습니다자바 서블릿에서 안드로이드 요청의 세션을 추적하는 방법

public Testing() { 
    super(); 
} 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    doPost(request, response); 
} 


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    HttpSession session = request.getSession(true); 
    Integer accessCount=(Integer)session.getAttribute("sessionCount"); 

     if(accessCount==null){ 
      accessCount=new Integer(1); 
      System.out.println("Welcome for first time...."); 


     }else{ 
     System.out.println("Welcome for "+ accessCount+" time to our website...."); 
     System.out.println("The request id"+session.getId()); 
     accessCount=new Integer(accessCount.intValue()+1); 
    } 
     session.setAttribute("sessionCount", accessCount); 

} 

내가 제대로 세션을 추적하는 브라우저에서 내 서버를 공격합니다. 출력은 다음과 같습니다 처음으로

에 오신 것을 환영합니다 ....
오신 것을 환영합니다 우리의 웹 사이트에 2 시간 ....
의 요청 ID : 00A24FAF40E130E09F38D52311EF8F1D
오신 것을 환영합니다 우리의 웹 사이트에 시간 3 ... .
요청 ID : 00A24FAF40E130E09F38D52311EF8F1D
오신 것을 환영합니다 우리의 웹 사이트에 4 시간 ....에 대한
요청 ID : 00A24FAF40E130E09F38D52311EF8F1D
오신 것을 환영합니다 우리의 웹 사이트에 5 시간 .... 012,380,073,162,755,231,요청 ID : 00A24FAF40E130E09F38D52311EF8F1D

을하지만 출력이 안드로이드 에뮬레이터를 사용하여 안드로이드 스튜디오에서 충돌 때 처음

에 오신 것을 환영합니다 .... 처음

에 오신 것을 환영합니다. ... 처음

에 오신 것을 환영합니다 .... 처음

에 오신 것을 환영합니다 ....

서블릿을 타격하기위한

내 코드는 내가 서버 측에서 언급 한대로 출력을 인쇄 있도록

private String getServerResponse(String json){ 
    HttpPost post= new HttpPost("http://10.0.2.2:23130/FirstServlet/welcome"); 
    try { 
     StringEntity entity=new StringEntity(json); 
     post.setEntity(entity); 
     post.setHeader("Content-type", "application/json"); 
     DefaultHttpClient client=new DefaultHttpClient(); 
     BasicResponseHandler handler=new BasicResponseHandler(); 
     try { 
      String response=client.execute(post,handler); 
      return response; 

     } catch (IOException e) { 
      Log.d("JWP", e.toString()); 
     } 
    } catch (UnsupportedEncodingException e) { 
     Log.d("JWP", e.toString()); 
    } 


    return "Unable to contact server......"; 

} 

내가, 안드로이드 측면에서 지속적으로 가입 데이터 및 보도 가입 버튼을 제공합니다.

제 질문은 자바 서블릿에서 HttpSession을 사용하여 Android 요청 세션을 어떻게 추적합니까?

+0

요청에 '쿠키'매개 변수의 'JSESSIONID'를 전달해야합니다. –

+0

나는 이것에 새로운 .... 만약 당신이 단지 설명하거나 안드로이드 요청의 세션을 관리, 내게 도움이되는 linke를 보내, 감사합니다 Logged –

답변

0

문제는 안드로이드 측에서 쿠키를 처리하지 않아서 JSESSIONID가 서버에 저장되거나 다시 전송되지 않는다는 것입니다.

것은 내가 HttpPost와 같은 낮은 수준의 HTTP 코드를 사용하기 때문에 년이,하지만 내가 정확히 기억한다면, 당신은 정말 좋은 높은 수준의 HTTP 있습니다 CookieHandler.setDefault(new CookieManager());

으로 처리 쿠키를 설정하고 거기에 도서관을 쉴 수 - 당신은 호의를 베풀어야하고 적어도 그들 중 한 명을 배워야합니다. JSON REST (사용자가있는 것처럼 보임)를 수행하는 경우 우수한 Retrofit 라이브러리를 제안합니다.

물론, Retrofit이 쿠키를 사용하는 방법도 알아야합니다. 여기에는 OkHttp 인터셉터가 포함됩니다. this 도움이됩니다.

관련 문제