Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package primer04;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.PrintStream;
- import java.net.InetAddress;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.net.URLDecoder;
- import java.util.ArrayList;
- /**
- * Jednostavan web server
- */
- public class httpd {
- public static ArrayList<String> lista;
- /*public httpd(){
- ArrayList<String> lista = new ArrayList<String>();
- }*/
- public static void main(String args[]) throws IOException {
- int port = 80;
- ArrayList<String> lista = new ArrayList<String>();
- @SuppressWarnings("resource")
- ServerSocket srvr = new ServerSocket(port);
- System.out.println("httpd running on port: " + port);
- System.out.println("document root is: "
- + new File(".").getAbsolutePath() + "\n");
- Socket skt = null;
- while (true) {
- try {
- skt = srvr.accept();
- InetAddress addr = skt.getInetAddress();
- //String resource = getResource(skt.getInputStream());
- BufferedReader dis = new BufferedReader(new InputStreamReader(skt.getInputStream()));
- String s = dis.readLine();
- System.out.println("\n"+s);
- System.out.println(s);
- String[] tokens = s.split(" ");
- String method = tokens[0];
- String komanda = tokens[1];
- if (method.equals("GET")) {
- if(komanda.contains("/dodaj?")){
- String imePrez = komanda.split("\\?")[1];
- String ime = imePrez.split("&")[0];
- int index = ime.indexOf("=");
- int kraj = ime.length();
- ime = ime.substring(index+1, kraj).trim();
- ime = URLDecoder.decode(ime, "UTF-8");
- String prezime = imePrez.split("&")[1];
- index = prezime.indexOf("=");
- int kraj2 = prezime.length();
- kraj = prezime.lastIndexOf(" ");
- prezime = prezime.substring(index+1, kraj2);
- prezime = URLDecoder.decode(prezime, "UTF-8");
- imePrez = ime +"_"+prezime;
- System.out.println(imePrez);
- lista.add(imePrez);
- System.out.println(lista.get(0));
- //OVDE BACA NULLEXCEPTION
- posaljiIzlistajOdgovor(skt.getOutputStream());
- }
- }
- skt.close();
- skt = null;
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- }
- static void posaljiIzlistajOdgovor(OutputStream os)throws IOException{
- PrintStream ps = new PrintStream(os);
- ps.print("HTTP/1.1 200 OK\r\nContent-Type: text/html;charset=UTF-8\r\n\r\n");
- ps.print("<html><head><title>Prijavljeni korisnici</title></head>\n");
- ps.print("<body><h1>Prijavljeni korisnici</h1>\n");
- ps.print("<table border = \"1\"><caption>Prijavljeni korisnici</caption> \n");
- ps.print("<tr><th>Ime:</th><th>Prezime:</th></tr>");
- //I OVDEE ISTO !!!!
- for(int i = 0; i<lista.size(); i++){
- ps.print("<tr>");
- String user = lista.get(i);
- ps.print("<td>"+user.split("_")[0]+"</td>\n");
- ps.print("<td>"+user.split("_")[1]+"</td>\n");
- ps.print("</tr>");
- }
- ps.print("</table></body></html>\n");
- }
- static String getResource(InputStream is) throws IOException {
- BufferedReader dis = new BufferedReader(new InputStreamReader(is));
- String s = dis.readLine();
- System.out.println(s);
- String[] tokens = s.split(" ");
- // prva linija HTTP zahteva: METOD /resurs HTTP/verzija
- // obradjujemo samo GET metodu
- String method = tokens[0];
- if (!method.equals("GET")) {
- return null;
- }
- ///dodaj?ime=gasa&prezime=gasa
- // ignorisemo ostatak zaglavlja
- String s1;
- while (!(s1 = dis.readLine()).equals(""))
- System.out.println(s1);
- String rsrc = "";
- return rsrc;
- }
- static void sendResponse(String resource, OutputStream os)
- throws IOException {
- PrintStream ps = new PrintStream(os);
- // zamenimo web separator sistemskim separatorom
- resource = resource.replace('/', File.separatorChar);
- File file = new File(resource);
- if (!file.exists()) {
- // ako datoteka ne postoji, vratimo kod za gresku
- ps.print("HTTP/1.0 404 File not found\r\n"
- + "Content-type: text/html; charset=UTF-8\r\n\r\n<b>404 Нисам нашао:"
- + file.getName() + "</b>");
- // ps.flush();
- System.out.println("Could not find resource: " + file);
- return;
- }
- // ispisemo zaglavlje HTTP odgovora
- ps.print("HTTP/1.0 200 OK\r\n\r\n");
- // a, zatim datoteku
- FileInputStream fis = new FileInputStream(file);
- byte[] data = new byte[8192];
- int len;
- while ((len = fis.read(data)) != -1) {
- ps.write(data, 0, len);
- }
- ps.flush();
- fis.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement