Как отправить данные из HTML-формы на серверный сокет Java? - PullRequest
0 голосов
/ 24 ноября 2018

проблема заключается в следующем: я создал сервер Java, используя классы ServerSocket и Socket.HTML-страница отображается правильно, но я понятия не имею, как я могу отправить данные (из типа ввода = текст) на мой Java-сервер, а затем показать сообщение, которое я написал на другой HTML-странице.

Кодследующее:

Класс MyServer:

private int port;
private ServerSocket ss;
private Socket s;
private PrintWriter pw;

public MyServer(){

    port = 1245;
    try{
        ss = new ServerSocket(port);
        System.out.println("server creato");
    }
    catch(Exception e){
        e.printStackTrace();
    }
    listen();
}

public void listen(){
    try{
        while(true){
            s = ss.accept();
            System.out.println("OK");

            if(s == null)
                System.exit(1);

            Client c = new Client(s);
            c.start();
        }
    }catch(Exception e){
        e.printStackTrace();
    }
}

Класс клиента (расширяет поток):

public Client(Socket s){
        this.s = s;
        try{
            pw = new PrintWriter(s.getOutputStream(), true);
            br = new BufferedReader(new InputStreamReader(s.getInputStream()));
            f = new File("test.html");

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

    public BufferedReader getBr(){
        return this.br;
    }

    public PrintWriter getPw(){
        return this.pw;
    }

    public File getF(){
        return this.f;
    }

    public void displayHtml(){

            try {
                FileInputStream fis = new FileInputStream(f);

                BufferedReader br2 = new BufferedReader(new InputStreamReader(fis));
                StringBuilder sb = new StringBuilder();
                String ris = null;

                while((ris = br2.readLine()) != null){
                    sb.append(ris);
                    //sb.append("\r\n");
                }
                pw.println("HTTP/1.1 200 OK");
                pw.println("Content-Type: text/html");
                pw.println("\r\n");
                pw.println(sb.toString());
                pw.flush();
                s.close();
            }catch(Exception e){
                e.printStackTrace();
            }
    }

    public void

    public void run(){
        try{   
            displayHtml();

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

Наконец, основной класс:

 public static void main(String[] args){
         MyServer ms = new MyServer();
    }

Я ищу хорошее решение.Я не хочу удалять весь мой код, чтобы сделать это.Спасибо:)

...