powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Не передаются на страницу параметры в формате json
18 сообщений из 18, страница 1 из 1
Не передаются на страницу параметры в формате json
    #37067347
Фотография Pablo_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть страница по нажатию кнопки вызывается функция "OnFunc()" которая с помощью JQuery+Ajax вызывают сервлет, и передают ему параметры. В зависимости от параметров выполняется какой то код и возращает сформированные данные в формате json. Проблема в следующем: сервлет вызывается, парметры получает, данные формируются и отправляются на страницу, но на страницу не приезжают. не могу понять почему?
Кусок код на JSP страницы:
1) Вариант:
<script type="text/javascript">
function OnFunc(){
$var1=1;
$.post("Servlet1", {var1:$var1}, function(data){
alert('test');
},"json");
}
</script>
2) Вариант:
<script type="text/javascript">
function OnFunc(){
$var1=1;
$.getJSON("Servlet1",{var1:$var1}, function(data){
alert('test');
});
}
</script>

Код сервлета:
...
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("{result:true}");
out.flush();
out.close();
...

Как уже писал, сервлет вызывается и выполняется без исключений, но alert на странице не вызывается
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37067357
Фотография Pablo_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл написать через $.post в формате html и xml данные передаются без проблем
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37067372
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pablo_new,

ставим FireBug и смотрим что же на самом деле приходит обратно.
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37067430
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну первое, что бросается в глаза - зачем вы выставляете contentType?
Далее, есть вероятность, что вы неправильно сформировали json на стороне сервера, ответит приходит, не может отпарсится jQuery, вылетает эксепшн -> в колбак вы не попадаете. Проверяется это так:
1) Ставите FireBug иди TCPMon (если у вас не мозилла);
2) Смотрите что приходит в респонсе, копируете
3) Вставляете в http://www.jsonlint.com/ и смотрите валидный он или нет.
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37067436
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не завметил ваш пример. Так и есть, JSON не валидный. Передавайте { " result " :true}
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37067529
Фотография Pablo_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomНе завметил ваш пример. Так и есть, JSON не валидный. Передавайте { " result " :true}
Спасибо вы оказались совершенно правы заворочалось )
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Не передаются на страницу параметры в формате json
    #37834856
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Помогите мне, пожалуйста. Делаю по примеру
Код: javascript
1.
2.
3.
4.
5.
$.getJSON('catalog?foo=bar', function(data) {
    alert('Success: ' + data.success + '\n'
        + 'Message: ' + data.message + '\n'
        + 'Param: ' + data.param);
});


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
Map<String, Object> data = new HashMap<String, Object>();
		    data.put("success", true);
		    data.put("message", "Hello World!");
		    data.put("param", request.getParameter("foo"));
		     
		    // Write response data as JSON.
		    response.setContentType("application/json");
		    response.setCharacterEncoding("UTF-8");
		    response.getWriter().write(new Gson().toJson(data));


Фаер баг показывает что данные успешно передаются но ничего не возращается и алерт ничего не выдает тоже. Уже различные варианты примеров делал, самостоятельно переделывал...Не пойму, почему сервлет никак не реагирует на данные? и как это все дело граммотно проследить? какие exception писать и как может помочь в этом деле Eclipse? Помогите, третий день не получается два связных комбобокса сделать с данными из базы... Часть работает, а на js застрял серъзно :(
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37834916
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты ничего не сказал про серверную часть. Java-код отрабатывает? Или не выполняется? Если не выполняется - что-то с маппингом, если выполняется, какую строку показывает выходную? Также замени куцую getJSON, пропиши все параметры и посмотри что возвращается, понятно, что ошибка, а какая? А, потом, судя по функции new Gson().toJson(data), на выходе у нее, похоже, свой объект, а отдавать надо String (ты для этого кодировку ставишь). Также поставь заголовки против кеширования - чем черт не шутит, может, у тебя изначально ответ закешировался (<1%).
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835386
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ, проблема видимо в кэшировании была.
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835424
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проект простенький, где только сервлет и страница - работает, я запускаю jsp страницу.
У меня есть проект, где несколько сервлетов и jsp страниц - здесь я запускаю сервлет и он отображает данные из jsp страницы.
Например вывод таблицы данных
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, java.io.IOException {
	    List dataList = new ArrayList();  
      	dataList = ShowCatalog();
        request.setAttribute("data",dataList);
		RequestDispatcher dispatcher = request.getRequestDispatcher(page);
		if (dispatcher != null){
			dispatcher.forward(request, response);
		} 
public List ShowCatalog() {
	  List catalogList = new ArrayList();
	 // String sql = "select * from catalog";
      PreparedStatement sql = null;
	  Connection conn = null;
      //Statement stmt = null;
      ResultSet rs = null;
      ResultSetMetaData rsm = null;
    
      try{ 
         conn = getConnection();
        sql = conn.prepareStatement("select * from catalog");    
         rs = sql.executeQuery();        
           while( rs.next()){
          	catalogList.add(rs.getInt("id"));
          	catalogList.add(rs.getString("disk"));
              }
          
     } catch (Exception e){
          
         throw new ServletException(e.getMessage());
          
      } finally {
          
          try{
              
              sql.close();
              conn.close();
              rs.close();
              
          } catch (Exception sqle){   }
          return catalogList;
  }
  }


В таком случае у меня не работает getJSON
Отправляет http://localhost:8080/CS_project/catalog?foo=bar но не возращает нужных данных.
foo bar name Josh time 2pm
Код: javascript
1.
2.
3.
4.
5.
$.getJSON('catalog?foo=bar', {name: 'Josh', time:'2pm'}, function(data) {
    alert('Success: ' + data.success + '\n'
        + 'Message: ' + data.message + '\n'
        + 'Param: ' + data.param);
});


Это потому что я с сервлета запускаю? поэтому я не получаю результат? И как правильно работать с базой и выводит ее на jsp страницу? Например в Java Servlet and JSP Cookbook либо весь код в сервлете, либо в jsp... Я в этом плане немного запутался, можете привести пример или кинуть ссылку на что то, как делают сейчас правильно что бы не мешать код с представлением?
Заголовки против кэширования поставил, это выглядит так?
Код: java
1.
2.
response.setHeader( "Cache-Control", "no-cache" );
		    response.setHeader( "Pragma", "no-cache" );
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835436
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что бы запускалась jsp страница, в форме прописать
Код: java
1.
<form action="catalog" ...>


web.xml
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
<servlet>
    <servlet-name>CatalogServlet</servlet-name>
    <servlet-class>logic.CatalogServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CatalogServlet</servlet-name>
    <url-pattern>/catalog</url-pattern>
  </servlet-mapping>


Но все равно при запуске jsp страницы ошибка "The server encountered an internal error () that prevented it from fulfilling this request.
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835464
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бррр ... так ты делаешь getJSON или форму отправляешь (ожидаешь переход)? Все в одну кучу свалил. Не спеши с базой, ты ответ не получаешь на клиенте. Разберись сначала с этим.

Очень похоже, что ты очень плохо разбираешься в механизме запрос-ответ и ajax (XMLHttpRequest, динамический запрос). Для начала убери jQuery и разберись что к чему. А потом уже упрощай жизнь библиотеками. Читай доку и форумы, больше читай ...
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835487
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делал сначала без jQuery... На сервер - servlet приходит запрос от клиента - jsp - страницы - request, сервлет его обрабатывает и отправляет ответ request.
Код: java
1.
public void doGet(HttpServletRequest request, HttpServletResponse response) метод get, получачет запрос и отправляет ответ

, есть так же метод Post... Я что то упустил важное?
Я в своем втором случае начинаю работу с сервлета - где создается соединенеие с базой, и оптавляются данные через RequestDispatcher на страницу, которая их выводит в таблицу. т.е. пытаясь загрузить страницу сразу я получаю исключение, так как сервлет еще не обработал данные для того что бы их вывести в таблицу?
Извините за эту словесную свалку, пытаюсь разобраться, так вроде бы понятно все, а на практике не так все...
авторНе спеши с базой, ты ответ не получаешь на клиенте. Разберись сначала с этим. Как разобраться? Я не пойму, как мне возратить ответ? По документации с этой функцией только это мне известно.
До jQuery делал просто JS
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<form name="content_filter" >  
           <table>  
                <tr>  
                     <td>State </td>  
                     <td>  
                          <select name="type" id="type" onchange="changeType()">  
                               <option>-- Select type --</option>
	<%List cat= (List)request.getAttribute("cat");
		for (itr=cat.iterator(); itr.hasNext(); )
		{ %>
		<option value="<%=itr.next()%>"><%=itr.next()%></option>
		<%} %> 
                          </select>  
                     </td>  
                </tr>  
                <tr>  
                     <td>District Name</td>  
                     <td>       
                          <span id="loadGenre">  
                               <select name="genre" id="genre">  
                                    <option>--Select genre--</option>  
                               </select>  
                          </span>  
                     </td>  
                </tr>  
           </table>  
      </form>  


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
function AjaxFunction()  
 {  
      var xmlrequest=false;  
      try  
      {  
           xmlrequest=new ActiveXObject("Msxml2.XMLHTTP");   
      }  
      catch(e1)  
      {  
           try  
           {  
                xmlrequest=new ActiveXObject("Microsoft.XMLHTTP");   
           }  
           catch(e2)  
           {     
                xmlrequest=false;  
           }  
      }  
      if (!xmlrequest && typeof XMLHttpRequest != 'undefined')   
      {  
           xmlrequest=new XMLHttpRequest();  
      }  
      return xmlrequest;  
 }   
 function changeState()  
 {  
      var state=document.getElementById("type").value;  
      var url="catalog?command=typechange&id="+type;  
      var xmlrequest= AjaxFunction();  
      xmlrequest.open("GET",url,true);   
      xmlrequest.onreadystatechange=function()  
      {  
           if(xmlrequest.readyState==4)  
           {  
                if(xmlrequest.status==200)  
                {  
                     //alert(xmlrequest.responseText);  
                     document.getElementById("loadGenre").innerHTML=xmlrequest.responseText;  
                }  
           }  
      };    
      xmlrequest.send(null);  
 }  


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
response.setContentType("text/xml; charset=windows-1252");  
           int typeID=Integer.parseInt(request.getParameter("id").toString());  
           PrintWriter out=response.getWriter();  
List genreList = new ArrayList();
genreList = ShowSubcat(typeID); //функция выполняет извлечение данных из БД по запросу
           String xml="";  
          
                xml="<select name=\"genre\" id=\"genre\">";  
                xml+="<option>--Select genre--</option>";  
                for (Iterator itr=genreList.iterator(); genreList.hasNext(); )
		{
                 xml+="<option id=\""+itr.next()+"\">"+itr.next()+"</option>";  
                } 
                xml+="</select>";  
           }  
           catch(Exception e){  
                System.out.println(e.getMessage());  
           }  
           
           out.write(xml);  
      }  


Проверял алертом, возращает все кроме самого списка genreList
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835488
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
*
Код: javascript
1.
 function changeType()
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835498
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как правильно строить приложения по jsp - технологии - запускать сервлет или jsp страницу? В учебниках разные примеры, где иногда запускают сервлет, и он отображает данные с jsp страницы - то что я сейчас сделал, т.е. я запускаю не страницу а сервлет, который выводит даные в таблице которая описана в странице, и в строке браузера я имею адрес сервлета, и только по этому адресу я могу увидеть данные. Или же нужно делать так, что бы запускалась jsp-страница, которая обращается к сервлету за данными и получает ответ, выводит его?
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835505
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://stackoverflow.com/questions/1824409/servlet-result-display-in-jsp-page вот например как здесь описано, так и я делаю, по другому же не сделать? только в jsp вставлять код, а это "не красиво"..
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37835720
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я даже не знаю, что сказать ... И вижу, что ты заблудился среди 3-ех сосен, и жалко тебя, и хочется помочь, но не понимаю, потому что сосен-то 3!

Сервлет запускается вместе с запуском контейнера сервлетов (или веб-сервером, если они совмещены), чаще всего Томкет. Ты его можешь только "дергать" по меппингу или вызывать из другого сервлета (коим в том числе является jsp-страница, не путать с результатом рендеринга, который отдается клиенту!) ... поэтому, сам понимаешь, "адрес сервлета" - это звучит несколько жестко.

На пальцах всех азов тебе не расскажу и, судя по тому, что кроме меня за сутки не нашлось желающих приоткрыть тебе завесу этой технологии, таких желающих может быть немного ... Только литература, снова "Hello, World!" и пока не поймешь. Могу тебе посоветовать книгу "AJAX in Action" в редакции Manning - она, конечно, не блещет новаторством, но как раз начинается с объяснений Ху-из-ху и пошагово проводит по дебрям этой технологии, с каждым примером усложняя код. Масса примеров, переведена на русский (даже в бумажном варианте!), в принципе, даже бывалый веб-программист найдет интересные моменты для себя в ней. Самое оно. Гарантирую, 95% вопросов отпадут сами собой.

P.S. Не найдешь, стукнись в почту, скину тебе русскую PDF-ку.
...
Рейтинг: 0 / 0
Не передаются на страницу параметры в формате json
    #37836070
Byka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruck - золотой человек:) Спасибо за ответ! Книгу уже скачал, читаю.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Не передаются на страницу параметры в формате json
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]