2012-02-06 8 views
0

私は、単に接続を受け入れ、画面に "送信応答"を印刷する単純なJava Serverプログラミングを書いた。このサーバーを接続するためにサファリを使用すると、サーバーは結果を1回印刷しますが、これは正しい結果です。ただし、ページをリロードすると、3つの「送信応答」が画面に印刷されます。誰でも私を助けることができますか?java serverSocketについての奇妙な応答

public class Server { 
    public void runServer() throws Exception{ 
    ServerSocket socketServer = new ServerSocket(3721); 
    System.out.println("Listerning for connections on port:"+socketServer.getLocalPort()); 
    while(true){ 
     Socket socket = socketServer.accept(); 
     System.err.println("Established with:"+socket); 
     String request = parseRequest(socket); 
     String response = createResponse(request); 
     sendResponse(response); 
     socket.close(); 
    } 
    } 

public String parseRequest(Socket socket){ 
    return "request"; 
} 

public String createResponse(String request){ 
    return "response"; 
} 

public void sendResponse(String response){ 
    System.out.println("Sending response"); 
} 

public static void main(String[] args) throws Exception{ 
    Server server = new Server(); 
    server.runServer(); 
} 
} 

出力は以下のとおりです。あなたがページにSafariでリクエストを作成すると、Safariがおそらくあなたのサーブレットが拾っているバックグラウンドで他の項目をフェッチしようとしている

Listerning for connections on port:3721 
Sending response 
Established with:Socket[addr=/0:0:0:0:0:0:0:1%0,port=59055,localport=3721] 
Sending response 
Established with:Socket[addr=/0:0:0:0:0:0:0:1%0,port=59065,localport=3721] 
Established with:Socket[addr=/0:0:0:0:0:0:0:1%0,port=59066,localport=3721] 
Sending response 
Sending response 
Established with:Socket[addr=/0:0:0:0:0:0:0:1%0,port=59067,localport=3721] 

答えて

1

明らかに1つは、URLの隣に表示されるfaviconと、ブックマークのアイコンです。

URIパスが要求に含まれているものを印刷して、要求の内容を正確に把握する必要があります。パスを使用して、「無効な」要求からの「有効な」要求を除外することができます。

+0

うわー、私はそれを行う方法を知って、ありがとう、私は何が起こったかを確認するためにuriを印刷します。どうもありがとうございます! – NOrder

関連する問題