2014-10-09 84 views
0

我在运行在我的机器上的端口8080上的java中运行一个简单的Web服务器,服务器确实收到来自浏览器的请求(当我编写此URL (本地主机:8080)),但是我想收到请求来自这个HTML页面从HTML表单启动http post请求并在java中接收到请求

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    </head> 
    <body> 
     <form method="post" action="192.168.1.1:8080"> 
      <input type="text" name ="txt"> 
      <input type="submit" name="sub"> 
     </form> 
    </body> 
</html> 

,结果被该网页无法显示

和我的第二次尝试是这样的

<!DOCTYPE html> 
    <html> 
     <head> 
      <title></title> 
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     </head> 
     <body> 
      <form method="post" action="server.java"> 
       <input type="text" name ="txt"> 
       <input type="submit" name="sub"> 
      </form> 
     </body> 
    </html> 

和我点击提交按钮后,它打开下载对话框(下载server.java)。

但是我设法发起一个请求,我自己在java中

Socket socket = new Socket("localhost",8080); 
    String request = "get/http/1.1"; 
    OutputStream os = socket.getOutputStream(); 
    os.write(request.getBytes()); 
    os.flush(); 
    os.close(); 

和我的服务器接收没有问题,要求,我不知道我是什么在这里失踪,什么是启动该层正确的请求以PHP网站为例。

+0

编写Web服务器是一项不平凡的任务,特别是如果您对HTTP没有充分的理解。如果你不给我们一行代码,我们应该如何调试你的服务器代码? – 2014-10-09 13:24:28

+0

你真的不需要看到我的Web服务器代码,导致我的问题是在启动一个HTML请求,如我所说。 – QuakeCore 2014-10-09 13:27:56

+0

至少第二个例子应该给你提示POST请求中有SOMETHING事件。再次,你可能是地球上唯一知道那里发生了什么的人。 – 2014-10-09 13:34:55

回答

0

Java不是一种脚本语言,不能像php或perl那样工作。在您的服务器中,您应该将请求URI映射到处理代码(例如,在web.xml中)。在你的<表单action =“...”>你应该提供一个你的服务器将要处理的URI。