【问题标题】:java - creating web server - handling incoming http requestsjava - 创建 Web 服务器 - 处理传入的 http 请求
【发布时间】:2013-03-18 11:21:09
【问题描述】:

我正在尝试用 Java 编写一个 Web 服务器(这是我第一次这么简单的 Web 服务器)。我不确定如何处理 http get 和 post 请求。

现在写我所拥有的只是一个带有服务器套接字的循环,连接除外,并使用 BufferedReader 接收传入消息(作为文本)。

我知道你可以扩展一个 Servlet 类并使用

  • protected void doGet(HttpServletRequest servlet_request, HttpServletResponse servlet_response) 和
  • protected void doPost(HttpServletRequest servlet_request, HttpServletResponse servlet_response)

但我不知道如何将来自套接字的原始传入消息转换/提取为 doGet() 和 doPost() 所需的参数。

有人能给出一个基本的例子和/或解释该怎么做吗?

非常感谢

另外,事后想想,扩展 Web 服务器来处理 JSP 页面会不会很简单?

非常感谢任何帮助。

【问题讨论】:

  • 这是作业/学习还是真正的项目?如果是后者,您可能不应该自己实现 HTTP 服务器,而是使用 Jetty 之类的东西或 Tomcat 之类的 servlet 容器。
  • 您好抱歉好问题忘了提及。这是为了我自己的学习目的。基本上在我的课程中,我们展示了如何使用 Jetty,我想知道我是否可以自己制作一个非常简单/基本的实现。
  • 在这种情况下,学会爱上 RFC,在这种情况下 RFC 2616 定义了 HTTP 协议:tools.ietf.org/html/rfc2616
  • 请检查一下,这可能会有所帮助 [简单 HTTP 服务器][1] [1]:stackoverflow.com/questions/3732109/…

标签: java http servlets


【解决方案1】:

为此,您首先需要了解http 数据包格式。 this link 会有所帮助

一旦您知道数据包的格式,您就可以提取方法(GET/POST/...) 和其他所需信息以继续。

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    相关资源
    最近更新 更多