2016-03-10 3 views
-1

У меня есть данные веб-службы, которые я получаю в сервлет. Я сохраняю данные веб-сервиса в списке и передаю его в jsp.Перенаправление на jsp со списком из сервлета не работает

Но ничего не происходит, когда я запускаю сервлет. Я не получаю никаких ошибок. Экран просто пустой. Кроме того, может кто-нибудь сказать мне, могу ли я использовать JavaScript в jsp для отображения карты. Но сначала мне нужно передать значения из сервлета в jsp. Я не думаю, что есть попытка вызвать jsp из сервлета.

Это сервлет

@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
    URL url = new URL("http://webserviceurl); 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
    conn.setRequestMethod("GET"); 
    conn.setRequestProperty("Accept", "application/json"); 

    if (conn.getResponseCode() != 200) { 
     throw new RuntimeException("Failed : HTTP error code : " 
       + conn.getResponseCode()); 
    } 

    BufferedReader br = new BufferedReader(new InputStreamReader(
      (conn.getInputStream()))); 

    String output; 
    JSONObject jSONObject; 
    System.out.println("Output from Server .... \n"); 
    List list = new ArrayList(); 
    while ((output = br.readLine()) != null) { 
     System.out.println(output); 
     try { 

      JSONArray array; 
      array = new JSONArray(output); 

      for (int i = 0; i < array.length(); i++) 
      { 
       jSONObject = array.getJSONObject(i); 
       list.add(jSONObject.get("lat")); 
       list.add(jSONObject.get("lang")); 
       System.out.print(""+ array.get(i)); 
      } 
     } 
     catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
    conn.disconnect(); 
    String json = new Gson().toJson(list); 

    request.setAttribute("json", json); 
    request.getRequestDispatcher("/Map.jsp").forward(request, response); 
} 

Я получаю это: java.lang.IllegalStateException: PWC1227: Cannot forward after response has been committed

Мой Map.jsp:

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <h1>Hello World!</h1> 
    <c:forEach items="${json}" var="item"> 
     <c:out value = "${item}"/> 
    </c:forEach>  
</body> 

+0

вы не можете переслать после записи в ответ – Ramanlfc

+0

@Ramanlfc. вы имеете в виду код 'esponse.setContentType (" application/json "); response.setCharacterEncoding ("UTF-8"); response.getWriter(). Write (json); '? если да, то комментирование также не работает –

+0

http://stackoverflow.com/questions/2123514/java-lang-illegalstateexception-cannot-forward-sendredirect-after-response-ha Перейдите по ссылке – SkyWalker

ответ

0

В этом случае, попробуйте это

<c:forEach items="${json}" var="item"> 
    ${item}<br> 
</c:forEach> 
+0

, он даже не перемещается в jsp..dont знает, поможет ли это. пробовал и не работал –

0

Это была processRequest(request, response); в первой строке. Спасибо за ничего.