2013-08-07 3 views
1

Я пытаюсь выполнить JSP на своей локальной машине, установив соединение с URL, но я не могу заставить его выполнить, я думал, что это может быть java, не находя JSP, но я могу " t, похоже, выясняет, почему это может быть, поскольку URL-адрес JSP выглядит хорошо, у любого есть идея, почему он не выполняется? Ниже приведен фрагмент кода и структура webapp.Выполнение JSP в java

Спасибо.

 URL url = new URL("http://127.0.0.1/folder1/folder2/folder3/test.jsp"); 
     URLConnection connection = url.openConnection(); 
     connection.setDoOutput(true); 
     OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); 
     out.write("id=" + id); 
     out.close(); 

     BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); 
     String output; 
     StringBuilder sb = new StringBuilder(); 
     boolean started = false; 

     while ((output = in.readLine()) != null) { 
      if (!output.trim().equals("")) { 
       started = true; 
      } 
      if (started) { 
       sb.append(output); 
       sb.append("\r\n"); 
      } 
     } 
     in.close(); 
     System.out.println(sb.toString()); 

My Webapp имеет сходную структуру со следующим.

webapp 
    /WEB-INF 
     /classes 
     web.xml 
    /folder1 
     /folder2 
      /folder3 
      test.jsp 
+2

Когда вы вставляете URL-адрес непосредственно в браузер, это работает? – Thihara

+0

Какое сообщение вы возвращаетесь? Получаете ли вы код ошибки 404 или какой-либо код ошибки HTTP? –

+0

@Thihara JSP отлично работает в веб-браузере. – JCS

ответ

0

Проблема оказалась в связи с переадресацией от **http**://localhost/folder1/folder2/folder3/test.jsp к **https**://localhost/folder1/folder2/folder3/test.jsp, был не простой редирект, чтобы определить, когда я открыл JSP в моем браузере, что было очень раздражает тот url.openConnection(), казалось, продолжать как ничего не произошло.

0

Я думаю, вам не хватает имени вашего приложения. Если вы работаете в ваше приложение внутри кота, то по умолчанию порт 8080.

http://127.0.0.1:<port>/<web-app-name>/folder1/folder2/folder3/test.jsp 
+0

my webapp можно получить без имени приложения с http: //127.0.0.1, из-за пути контекста, который я установил для webapp в ROOT.xml, но я все еще пытался сделать свой путь, к сожалению, он не работал. – JCS

0

Даю подход по устранению неполадок, поскольку я не знаю много о том, что неудача сообщения вы получаете.

  1. Я хотел бы попробовать доступ к другой веб-страницы, кроме URL вы при условии; просто для подтверждения правильности вашего подхода URLConnection и , что это проблема с доступом к JSP-файлу.

  2. Просмотрите фактическое сообщение/страницу, возвращаемую вашим запросом. Это страница 404? Если это так, ваш URL-адрес отключен.

  3. И убедитесь, что вы можете получить доступ к этому URL прямо в своем браузере.

1

Я думаю, что вы, возможно, намерены сделать следующее (без вывода части):

URL url = new URL("http://127.0.0.1/folder1/folder2/folder3/test.jsp?id=" + id); 

Использовать StringBuilder для output - это гораздо более эффективным.


Если text.jsp сделать оба: спросить форму id и обрабатывать форму, а затем сделать не использование:

if (request.getMethod().equals("POST")) { 
    String id = request.getParameter("id"); 
    ... handle given id 
    return; 
} 
... show form 

но использовать GET/POST/агностик ненужного кода :

String id = request.getParameter("id"); 
if (id != null) { 
    ... handle given id 
    return; 
} 
... show form 

Чтобы HTTP GET выполнял работу.

+0

Не имеет значения. – JCS

+0

@JCS Что произойдет, если вы оставите проверку на пустой строке? Может быть, так оно и есть. Пропустить ли HTTP-заголовки? –

Смежные вопросы