Я новичок в Jetty и пытаюсь обрабатывать HTTP-запросы. Мой main создает два контекста: (1) обычную стартовую страницу с использованием query.html в качестве страницы и (2) контекст для обработки запросов под названием queryContext.
public static void main( String[] args ) throws Exception {
Server server = new Server(8080);
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{ "query.html" });
resource_handler.setResourceBase("src/main/html/");
// Creating default context handler (start page)
ContextHandler startContext = new ContextHandler();
startContext.setContextPath( "/" );
startContext.setHandler( resource_handler );
// Creating query context handler (receiving post messages)
ContextHandler queryContext = new ContextHandler();
queryContext.setContextPath("/query");
queryContext.setHandler( new PostHandler() );
// Add all contexts to the server
ContextHandlerCollection contexts = new ContextHandlerCollection();
contexts.setHandlers(new Handler[] { startContext, queryContext});
server.setHandler(contexts);
server.start();
server.join();
}
Мой query.html содержит форму для отправки запроса POST в класс PostHander.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="CSS/style.css">
<title>Title</title>
</head>
<body>
<div class="form-style-5">
<form action="http://localhost:8080/query" method="post">
<fieldset>
<legend>Query</legend>
<textarea name="queryfield" placeholder="test"></textarea>
</fieldset>
<input type="submit" value="Apply" />
</form>
</div>
</body>
</html>
И класс PostHandler должен обработать запрос, ответить на него и т. Д.
public void handle( String target, Request baseRequest,
HttpServletRequest request,
HttpServletResponse response ) throws IOException, ServletException
{
// returns that the used method is GET
System.out.println(request.getMethod());
response.setContentType("text/html; charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
PrintWriter out = response.getWriter();
out.println("<h1>" + greeting + "</h1>");
if (body != null)
{
out.println(body);
}
baseRequest.setHandled(true);
}
У меня сейчас проблема в том, что я не знаю, как получить информацию, отправленную в форме. Кроме того, request.getMethod () возвращает «GET», что меня смущает.
Может кто-нибудь дать мне ответ или хотя бы подсказку, что может пойти не так?
Заранее спасибо за помощь!