Started register, added jQuery, ...

This commit is contained in:
Norbi Peti 2016-07-20 15:02:49 +02:00
parent 127a37b097
commit ef70448ca6
12 changed files with 10215 additions and 11 deletions

7
.buildpath Normal file
View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<buildpath>
<buildpathentry kind="src" path="src"/>
<buildpathentry kind="con" path="org.eclipse.dltk.mod.launching.INTERPRETER_CONTAINER"/>
<buildpathentry kind="con" path="org.eclipse.vjet.eclipse.core.JSNATIVE_CONTAINER/JS Native Types"/>
<buildpathentry kind="con" path="org.eclipse.vjet.eclipse.core.BROWSER_CONTAINER/Browser SDK"/>
</buildpath>

View file

@ -5,6 +5,11 @@
<projects> <projects>
</projects> </projects>
<buildSpec> <buildSpec>
<buildCommand>
<name>org.eclipse.vjet.eclipse.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand> <buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name> <name>org.eclipse.jdt.core.javabuilder</name>
<arguments> <arguments>
@ -17,6 +22,7 @@
</buildCommand> </buildCommand>
</buildSpec> </buildSpec>
<natures> <natures>
<nature>org.eclipse.vjet.core.nature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature> <nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.jdt.core.javanature</nature>
</natures> </natures>

View file

@ -1,5 +1,11 @@
<!DOCTYPE html> <!DOCTYPE html>
<head>
<title>ChatServer</title>
<script src="js/jquery-3.1.0.js"></script>
<script src="js/message.js"></script>
</head>
<html> <html>
<h1>Index</h1> <h1>Index</h1>
<p>Hello</p> <p>Hello</p>
<input id="msginput" value="" />
</html> </html>

10074
pages/js/jquery-3.1.0.js vendored Normal file

File diff suppressed because it is too large Load diff

4
pages/js/message.js Normal file
View file

@ -0,0 +1,4 @@
$(document).on("keypress", function(e) {
if (e.which == '\r'.charCodeAt(0))
document.write(document.getElementById("msginput").value);
});

View file

@ -2,6 +2,7 @@ package io.github.norbipeti.chat.server;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
@ -33,18 +34,35 @@ public class IOHelper {
exchange); exchange);
return null; return null;
} }
return ReadFile(file);
}
public static String ReadFile(File file) throws FileNotFoundException, IOException {
FileInputStream inputStream = new FileInputStream(file); FileInputStream inputStream = new FileInputStream(file);
String content = IOUtils.toString(inputStream, StandardCharsets.UTF_8); String content = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
return content; return content;
} }
public static String GetPOST(HttpExchange exchange) throws IOException { public static HashMap<String, String> GetPOST(HttpExchange exchange) throws IOException {
System.out.println(exchange.getRequestBody().available());
if (exchange.getRequestBody().available() == 0)
return new HashMap<>();
String[] content = IOUtils.toString(exchange.getRequestBody(), StandardCharsets.ISO_8859_1).split("\\&"); String[] content = IOUtils.toString(exchange.getRequestBody(), StandardCharsets.ISO_8859_1).split("\\&");
System.out.println(content);
HashMap<String, String> vars = new HashMap<>(); HashMap<String, String> vars = new HashMap<>();
for (String var : content) { for (String var : content) {
String[] spl = var.split("\\="); String[] spl = var.split("\\=");
vars.put(spl[0], spl[1]); vars.put(spl[0], spl[1]);
} }
return null; return vars;
}
public static boolean SendModifiedPage(int code, Page page, String replace, String with, HttpExchange exchange)
throws IOException {
String content = GetPage(page, exchange);
if (content == null)
return false;
SendResponse(200, content.replace(replace, with), exchange);
return true;
} }
} }

View file

@ -27,13 +27,16 @@ public class Main {
System.out.println("Loading database..."); System.out.println("Loading database...");
try (DataProvider provider = new DataProvider()) { try (DataProvider provider = new DataProvider()) {
User user = new User(); User user = new User();
user.setName("asd");
provider.addUser(user); provider.addUser(user);
User user2 = new User(); User user2 = new User();
user2.setName("Teszt"); user2.setName("Teszt");
user2.getContacts().add(user); user2.getContacts().add(user);
user.getContacts().add(user2);
provider.addUser(user2); provider.addUser(user2);
System.out.println(provider.getUsers()); System.out.println(provider.getUsers());
System.out.println("Contact: " + user2.getContacts().get(0)); System.out.println("1st's contact: " + user.getContacts().get(0));
System.out.println("2nd's contact: " + user2.getContacts().get(0));
} }
System.out.println("Starting webserver..."); System.out.println("Starting webserver...");
HttpServer server = HttpServer.create(new InetSocketAddress(InetAddress.getLocalHost(), 8080), 10); HttpServer server = HttpServer.create(new InetSocketAddress(InetAddress.getLocalHost(), 8080), 10);

View file

@ -42,8 +42,11 @@ public class User {
@Override @Override
public String toString() { public String toString() {
return "User [id=" + id + ", name=" + name + ", email=" + email + ", password=" + password + ", contacts=" List<String> c = new ArrayList<>();
+ contacts + "]"; for (User u : contacts)
c.add(u.name);
return "User [id=" + id + ", name=" + name + ", email=" + email + ", password=" + password + ", contacts=" + c
+ "]";
} }
public void setEmail(String email) { public void setEmail(String email) {

View file

@ -0,0 +1,20 @@
package io.github.norbipeti.chat.server.page;
import java.io.IOException;
import com.sun.net.httpserver.HttpExchange;
public class MessageAjaxPage extends Page {
@Override
public String GetName() {
return "message";
}
@Override
public void handlePage(HttpExchange exchange) throws IOException {
// TODO Auto-generated method stub
}
}

View file

@ -22,10 +22,14 @@ public abstract class Page implements HttpHandler {
@Override @Override
public void handle(HttpExchange exchange) throws IOException { public void handle(HttpExchange exchange) throws IOException {
if (!getDo404() || exchange.getRequestURI().getPath().equals("/" + GetName())) try {
handlePage(exchange); if (!getDo404() || exchange.getRequestURI().getPath().equals("/" + GetName()))
else { handlePage(exchange);
IOHelper.SendPage(404, NotFoundPage.Instance, exchange); else {
IOHelper.SendPage(404, NotFoundPage.Instance, exchange);
}
} catch (IOException e) {
e.printStackTrace();
} }
} }

View file

@ -1,6 +1,7 @@
package io.github.norbipeti.chat.server.page; package io.github.norbipeti.chat.server.page;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpExchange;
import io.github.norbipeti.chat.server.IOHelper; import io.github.norbipeti.chat.server.IOHelper;
@ -8,11 +9,35 @@ import io.github.norbipeti.chat.server.IOHelper;
public class RegisterPage extends Page { public class RegisterPage extends Page {
@Override @Override
public void handlePage(HttpExchange exchange) throws IOException { public void handlePage(HttpExchange exchange) throws IOException {
/*for(String line : IOHelper.GetPOST(exchange)) HashMap<String, String> post = IOHelper.GetPOST(exchange);
System.out.println(line);*/ System.out.println("POST: " + post);
if (post.size() > 0) {
String errormsg = CheckValues(post, "name", "email", "pass", "pass2");
System.out.println(errormsg);
if (errormsg.length() == 0) {
// Process register
String successmsg = "";
IOHelper.SendModifiedPage(200, this, "<successmsg />", successmsg, exchange);
return;
} else
IOHelper.SendModifiedPage(200, this, "<errormsg />", errormsg, exchange);
return;
}
IOHelper.SendPage(200, this, exchange); IOHelper.SendPage(200, this, exchange);
} }
private String CheckValues(HashMap<String, String> post, String... values) {
String errormsg = "";
for (String value : values)
if (!CheckValue(post.get(value)))
errormsg += "<p>" + value + " can't be empty</p>";
return errormsg;
}
private boolean CheckValue(String val) {
return val != null && val.length() > 0;
}
@Override @Override
public String GetName() { public String GetName() {
return "register"; return "register";

View file

@ -0,0 +1,34 @@
package io.github.norbipeti.chat.server.page;
import java.io.File;
import java.io.IOException;
import com.sun.net.httpserver.HttpExchange;
import io.github.norbipeti.chat.server.IOHelper;
public class ScriptsPage extends Page {
@Override
public boolean getDo404() {
return false;
}
@Override
public String GetName() {
return "js/";
}
@Override
public void handlePage(HttpExchange exchange) throws IOException {
if (exchange.getRequestURI().getPath().startsWith("/js/")) {
File jsfile = new File("pages", exchange.getRequestURI().getPath());
if (!jsfile.exists())
IOHelper.SendResponse(404, "<h1>JavaScript file not found</h1>", exchange);
else
IOHelper.SendResponse(200, IOHelper.ReadFile(jsfile), exchange);
}
else
System.out.println(exchange.getRequestURI().getPath());
}
}