2014-10-09 85 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。