Java 用jetty实现HTTP服务器 获取 Get 请求体

Java 用 jetty 开发 HTTP服务器 来 获取每次 GET请求中 的请求体

监听 本机IP地址  中的  /httpCli 

端口 5011

Main.java

package com.JettyServer;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

/***/
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello Jetty Server !" );
com.JettyServer.App appMain
= new com.JettyServer.App(); ContextHandlerCollection contexts = new ContextHandlerCollection();//region jetty-------- httpCli调试用-------------------- ServletContextHandler context1 = new ServletContextHandler(ServletContextHandler.SESSIONS); context1.setContextPath("/"); com.JettyServer.HttpServletCli httpServletCli = new com.JettyServer.HttpServletCli(appMain);//httpapi context1.addServlet(new ServletHolder(httpServletCli), "/httpCli");//httpapi contexts.addHandler(context1); //region jetty服务器启动------------------------------- Server server = new Server(5011);//设置端口 server.setHandler(contexts); try { server.start();//jetty服务器启动 System.out.println( "Jetty Server 启动成功。port : 5011 " ); server.join(); } catch (Exception e) { e.printStackTrace(); //logger.error(e.getMessage()); } //endregion ------------------------------------------------- }
HttpServletCli.java
package com.JettyServer;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

public class HttpServletCli extends HttpServlet {

    private com.JettyServer.App _appMain;

    public HttpServletCli(com.JettyServer.App app ) {
        this._appMain=app;
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {

        System.out.println("get response: " +response.toString());
        System.out.println("get request: " +request.toString());

        StringBuilder buffer = new StringBuilder();
        String line;

        // 获取请求体的输入流
        BufferedReader reader = request.getReader();

        // 逐行读取数据
        while ((line = reader.readLine()) != null) {
            buffer.append(line);
        }

        // 将读取的---请求体---数据转换为字符串
        String data = buffer.toString();
        System.out.println("get request 请求体: " +data);

    }

    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {
        System.out.println("doPost "+ req.toString());
        BufferedReader streamReader = new BufferedReader( new InputStreamReader(req.getInputStream(), "UTF-8"));
        StringBuilder responseStrBuilder = new StringBuilder();
        String inputStr;
        while ((inputStr = streamReader.readLine()) != null)
            responseStrBuilder.append(inputStr);
        System.out.println("doPost "+responseStrBuilder.toString());
        //允许跨域
        res.setHeader("Access-Control-Allow-Origin", "*");
        res.setHeader("Access-Control-Allow-Methods", "*");
        res.setHeader("Access-Control-Max-Age", "3600");
        res.addHeader("Access-Control-Allow-Headers", "*");
        res.setHeader("Access-Control-Allow-Credentials", "*");
  
    }


}

pom.xml

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-maven-plugin</artifactId>
      <version>9.4.4.v20170414</version>
      <type>jar</type>
    </dependency>
  </dependencies>

 

posted @ 2024-08-06 14:16  海乐学习  阅读(25)  评论(0编辑  收藏  举报