Дело в том, что вы через Ajax не правильно отправляете запрос методом "POST" НЕЛЬЗЯ В СТРОКЕ URL ПЕРЕДАВАТЬ ПАРАМЕТРЫ методом POST параметры передаются внутри http пакета, а вот если б ты использовал метод метод GET то это может быть и сработало, в итоге сервер переправляет данный запрос как "GET" сервлету к методу doGet(res,req) или вообще его не обрабатывает.
Написал по своему, вот код может поймёшь что у тя была за проблема:
| Код | <script language="javascript" type="text/javascript"> var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } } if (!request) alert("Error initializing XMLHttpRequest!"); function getChoisenPath() { var u1="par1"; var u2="par2"; var url = ""http://127.0.0.1:8080/HTest/testpage"; var msg = "qInd="+u1+"&qVar="+u2; request.open("POST", url, true); request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.onreadystatechange = callback; request.send(msg); } function callback() { if (request.readyState==4) { if (request.status==200) { alert(request.responseText); } else alert("WARNING status is " + request.status); } }
</script>
|
И возможно была у тебя ошибка в Servlete до конца не вдовался там в подробности...
Код Java (часть сервлета):
| Код |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String qInd= request.getParameter("qInd"); String qVar= request.getParameter("qVar"); String msg ="<qInd>" + nick + "</qInd>" + "<qVar>" + qVar+ "</qVar>"; response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); response.getWriter().write(msg);
}
|
У меня работает. Желаю удачи!!!
|