Я протоколирования сервлет называется LoggingServlet и переопределяет метод doGet и doPost следующим образом:Java Servlet: doPost называется, но не doGet
public class LoggingServlet extends HttpServlet {
private static final long serialVersionUID = 2L;
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
...do stuff here
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
...do stuff here
}
И мой web.xml выглядит примерно так:
<servlet>
<servlet-name>LoggingServlet</servlet-name>
<servlet-class>com.example.servlets.LoggingServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoggingServlet</servlet-name>
<url-pattern>/LoggingServlet/*</url-pattern>
</servlet-mapping>
И это фрагмент из JSP, который реализует некоторые JavaScript:
<script>
document.getElementById("ad_div").onmousedown = function() {
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","/LoggingServlet?bookie_id=<%= request.getParameter("id") %>&app_id=<%= request.getParameter("app_id") %>",true);
xmlhttp.send();
return true;
};
</script>
Я также Аноф er jsp, который вызывает LoggingServlet через запрос Post. Теперь моя проблема:
- Запрос сообщение отлично работает без каких-либо проблем
- Однако запрос Достаньте из JavaScript возвращает ошибку 404. Я также вручную ввел полный URL-адрес в веб-браузер и получил ошибку 404.
Как это возможно?
Какой URL-адрес вы указали в окне браузера? Какой URL-адрес вы использовали для запуска запроса 'POST'? –
Я не вижу ничего неправильного. Попробуйте открыть сервлет-путь из браузера (это вызовет 'doGet()'). –
В текущем JS-коде предполагается, что webapp развернут в контексте root. Это правда? Если нет, то это объясняет вашу проблему с корнем. – BalusC