преобразовать метод GET для сервера Jetty в метод POST

1

Я создал веб-сервер java используя jetty-server (org.eclipse.jetty version:9.1.0.M0). Мой код сервера выглядит следующим образом.

package webservice;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
public class ServerClass {
    public void startServer() throws Exception{
        int port=2000;
        Server server= new Server(port);        
        ContextHandler context = new ContextHandler();
        context.setContextPath("/square");
        context.setResourceBase(".");
        context.setClassLoader(Thread.currentThread().getContextClassLoader());
        context.setHandler(new ContentHandler1());
        server.setHandler(context);


        server.start();
    }

    public static void main(String []args) throws Exception{
        ServerClass server= new ServerClass();
        server.startServer();
    }

}

И вот код обработчика содержимого:

package webservice;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;

class ContentHandler1 extends AbstractHandler{

    public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
            throws IOException, ServletException{
        try{
            response.setContentType("text/html;charset=utf-8");
            response.setStatus(HttpServletResponse.SC_OK);
            baseRequest.setHandled(true);
            int number = Integer.parseInt(request.getParameter("number"));
            response.getWriter().println(number*number);
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

Когда я отправляю метод GET, он работает отлично. т.е. http://localhost:2000/square?number=8 возвращает выход 64. Но мне нужен метод POST. Как я могу преобразовать этот код для обработки запроса POST?

Теги:
webserver
jetty
httpserver
java-server

1 ответ

3
Лучший ответ

Вы можете попробовать следующее:

ContextHandler context = new ContextHandler();
context.setContextPath("/square");
context.setAllowNullPathInfo(true);

Похоже, POST запросы на /square перенаправляются как запросы GET в /square/.

См. Также: Запрос POST становится GET

Ещё вопросы

Сообщество Overcoder
Наверх
Меню