У меня есть данные веб-службы, которые я получаю в сервлет. Я сохраняю данные веб-сервиса в списке и передаю его в 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>
вы не можете переслать после записи в ответ – Ramanlfc
@Ramanlfc. вы имеете в виду код 'esponse.setContentType (" application/json "); response.setCharacterEncoding ("UTF-8"); response.getWriter(). Write (json); '? если да, то комментирование также не работает –
http://stackoverflow.com/questions/2123514/java-lang-illegalstateexception-cannot-forward-sendredirect-after-response-ha Перейдите по ссылке – SkyWalker