SERVIDOR WEB MULTITHREAD
Por: Hugo.bassi • 20/11/2017 • 1.183 Palavras (5 Páginas) • 490 Visualizações
...
c. Posteriormente, após executar o servidor, abrir o browser e digitar:
127.0.0.1:6789/index.htm
(caso não usar a porta 6789, colocar a porta correta).
2.2 LOOP
Colocar um loop infinito no código para atender diversas requisições;
2.3 BAD REQUEST
O código inicial não gera a resposta BAD REQUEST para o browser.
Para testar, simular uma requisição com erro de sintaxe com o telnet,
por exemplo:
telnet 127.0.0. 1 6789
BAD index.html http/1.0
2.4 FILE NOT FOUND
Originalmente não há tratamento de file not found. Deverá ser implementado através de um TRY – CATCH.
Para testar, abrir o browser e digitar:
127.0.0.1:6789/inxxx.htm.
Mandar para o browser a resposta padrão HTTP para file not found.
2.5 CONSOLE
No servidor, imprimir no console todas as ações que acontecem no servidor,
Exemplo: start do servidor; atendimento de requisição HTTP; inicialização de uma Thread; etc...
2.6 ANALISADOR DE PROTOCOLO HTTP
O código inicial somente lê a primeira linha da requisição do browser. Você deve ler todas as linhas e imprimi-las no console.
2.7 HEAD
Implementar também o método HEAD;
2.8 THREAD
Cada vez que houver um pedido de conexão, criar uma nova Thread para o atendimento.
2.9 APRESENTAÇÃO
Apresentação a ser feita em HTML. Criar uma página inicial do trabalho, que ficará hospedada no próprio servidor criado. Colocar links para: uma figura .jpg; um .gif; .um txt; um .html; um .htm; o código comentado.
2.10 INTERFACE
Fazer uma interface gráfica para o servidor.
3 INTERFACES
[pic 1]
3.1 Tela Inicial
[pic 2]
3.2 Requisitando Index
[pic 3]
3.3 Requisitando Figuras
[pic 4]
3.4 File Not Found
[pic 5]
3.5 Bad Request
4 CÓDIGO FONTE
package redes;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.util.*;
/**
*
* @author
* FELIPE DE OLIVEIRA VOGEL PENNA
* HENRIQUE FERREIRA CANAL
*/
public class JWebServer extends JFrame {
//Declarar panel, scrollpanel, textarea
JPanel contentPane;
JPanel jPanel1 = new JPanel();
BorderLayout borderLayout1 = new BorderLayout();
JButton jButton1 = new JButton();
JPanel jPanel2 = new JPanel();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JPanel jPanel3 = new JPanel();
JPanel jPanel4 = new JPanel();
WebServer websvr = null; ;
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();
JTextPane jTextPane1 = new JTextPane();
//Constrtor do frame
public JWebServer() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
// Configurar a interface de usuário
private void jbInit() throws Exception {
contentPane = (JPanel)this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(550, 700));
this.setTitle("JWebServer 1.0");
contentPane.setBorder(BorderFactory.createLineBorder(Color.black));
jButton1.setToolTipText("Inicia o Servidor Web");
jButton1.setIcon(null);
jButton1.setPressedIcon(null);
jButton1.setText("INICIAR");
...