From 363e5a6ddf02ad43bddbaf2cb9c8373dba3623cf Mon Sep 17 00:00:00 2001 From: Jesus Date: Wed, 16 Nov 2022 10:07:56 +0100 Subject: [PATCH] Added class UrlParser and logic --- .../java/com/jesuspinar/webserver/Main.java | 15 +++++ .../com/jesuspinar/webserver/Manager.java | 1 - .../com/jesuspinar/webserver/UrlParser.java | 59 +++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/jesuspinar/webserver/Main.java create mode 100644 src/main/java/com/jesuspinar/webserver/UrlParser.java diff --git a/src/main/java/com/jesuspinar/webserver/Main.java b/src/main/java/com/jesuspinar/webserver/Main.java new file mode 100644 index 0000000..a517923 --- /dev/null +++ b/src/main/java/com/jesuspinar/webserver/Main.java @@ -0,0 +1,15 @@ +package com.jesuspinar.webserver; + +public class Main{ + public static void main(String[] args) { + UrlParser s = new UrlParser("http://www.jesuspinar.es/9000"); + + System.out.println("Url: "+s.getUrl()); + System.out.println("Protocolo: "+s.getProtocol()); + System.out.println("Dominio: "+s.getDomain()); + System.out.println("Nombre: "+s.getDomainName()); + System.out.println("TLD: "+s.getTld()); + System.out.println("Puerto: "+s.getPort()); + + } +} diff --git a/src/main/java/com/jesuspinar/webserver/Manager.java b/src/main/java/com/jesuspinar/webserver/Manager.java index b1ffff3..62bd01f 100644 --- a/src/main/java/com/jesuspinar/webserver/Manager.java +++ b/src/main/java/com/jesuspinar/webserver/Manager.java @@ -52,7 +52,6 @@ public class Manager { //Data from the server model.addAttribute("url", currentURL); model.addAttribute("protocol", requestURL.getProtocol()); - //ToDo: split host info in a class model.addAttribute("host", requestURL.getHost()); model.addAttribute("port", requestURL.getPort()); diff --git a/src/main/java/com/jesuspinar/webserver/UrlParser.java b/src/main/java/com/jesuspinar/webserver/UrlParser.java new file mode 100644 index 0000000..0e47cfd --- /dev/null +++ b/src/main/java/com/jesuspinar/webserver/UrlParser.java @@ -0,0 +1,59 @@ +package com.jesuspinar.webserver; + +public class UrlParser { + + private String url; + private StringBuilder sb ; + + public UrlParser(String url) { + sb = new StringBuilder(); + this.url = url; + } + + public String getUrl(){ + return url; + } + + private String splitString(String charStart, String charEnd , boolean reverse){ + sb.setLength(0); + sb.append(url); + int start; + int end; + + start = url.indexOf(charStart); + end = url.indexOf(charEnd); + + if (reverse){ + start = url.lastIndexOf(charStart)+1; + end = url.lastIndexOf(charEnd); + } + + return sb.substring(start, end); + } + + public String getProtocol(){ + return splitString("h",":", false); + } + public String getDomain(){ + int i = url.indexOf("/")+2; + return splitString(String.valueOf(url.charAt(i)),".", false); + } + public String getDomainName(){ + sb.setLength(0); + sb.append(url); + int i = url.indexOf(".")+1; + sb.delete(0,i); + i = sb.toString().indexOf("."); + sb.delete(i,sb.length()); + return sb.toString(); + } + public String getTld(){ + return splitString(".","/" , true); + } + + public String getPort(){ + return splitString("/","" , true); + } + + +}