Я создал веб-сервер 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
?
Вы можете попробовать следующее:
ContextHandler context = new ContextHandler();
context.setContextPath("/square");
context.setAllowNullPathInfo(true);
Похоже, POST
запросы на /square
перенаправляются как запросы GET
в /square/
.
См. Также: Запрос POST становится GET