繁体   English   中英

Java从发布请求中获取参数

[英]Java get parameters from post request

我目前正在尝试处理Java中的一些传入POST请求。

到目前为止,它正在部分工作。 我可以收到请求,但是似乎无法提取与请求一起发送的参数和值。

这是到目前为止我接收请求的Java代码:

public HybridRemoteReceiver() {

try {
    System.out.println("running...");
    ServerSocket ss = new ServerSocket(3434);

    int i = 0;
    while (true) {
        Socket client = ss.accept();
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
        String line;

        while ((line = in.readLine()) != null) {
            if (line.length() == 0)
                break;
            i++;
        }
        in.close();
        client.close();
    }


} catch (Exception e) {
    e.printStackTrace();
}

}

我知道有一个名为HttpServer的类,但这就像Java中不存在此类。

我在Eclipse BTW中使用Java 1.8。

但是,我可以找到HttpExchangeHttpHandler类,但似乎无法使它们正常工作。

基本上,我要实现的是接收与发布请求一起发送的数据,而不将任何内容发送回客户端。

我真的希望有人能帮助我解决这个问题。

使用Tomcat容器之类的servlet容器。

然后,研究Servlet(扩展HttpServlet),可以使用其GET和POST方法。

这是POST。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        username = request.getParameter("username");

}

//用户名是从JSP通过POST发送的参数。

如果要处理HTTP请求,最好的做法是使用Servlet容器,例如Tomcat。 Tomcat不会实现整个Java EE规范,但是会为您提供servlet容器的实现,该容器将能够轻松处理post请求。 这使您不必重新发明轮子,而使您可以依赖于已纳入许多项目的成熟技术。

一旦servlet容器库位于类路径上,您就可以使用HttpServletRequest类的类。 您只需站起来一个Servlet容器,然后声明并映射一个Servlet ,其操作就像调用HttpServletRequest#getParameter()方法一样简单。

确实有一个HttpServer类,可以在sun.net.httpserver包中的某个位置找到它。

com.sun软件包和子软件包不同, sun软件包和子软件包可以安全使用。

编辑:如果愿意,您始终可以编写自己的服务器。 如果您希望这样做,请确保它遵循定义您将使用的HTTP版本的所有RFC。 某些事情不是必需的,您可以向其抛出501未实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM