Jetty читает HTTP-запросы - PullRequest
       9

Jetty читает HTTP-запросы

0 голосов
/ 29 июня 2018

Я новичок в 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», что меня смущает.

Может кто-нибудь дать мне ответ или хотя бы подсказку, что может пойти не так?

Заранее спасибо за помощь!

...