I detta projektarbete byggde vi en Http server som en modulär applikation i Java. Servern kan hantera enklare GET, HEAD och POST förfrågningar och kan serva statiska filer från disk samt bildformat med rätt content-type i svaret.
Servern är multitrådad och kan hantera flera förfrågningar simultant.
Vi har också flera url-sökväger som ger oss möjlighet att skicka in information till webbservern via url parametrar tillsammans med GET och som body text tillsammans med POST förfrågan. Den inskickade informationen lagras i en MSQL-databas och kan skickas tillbaka som ett json dokument när det efterfrågas via en GET mot URL "/contacts/".
Inskickningen av information hanteras med hjälp av ett HTML formulär.
Alla förfrågningar hanteras med hjälp av plugins som hanterar olika typer av filer och data till databasen. Plugins laddas in dynamiskt och routing har vi löst med med hjälp av annotations i runtime.
Alla pluginklasser extendas från Interfacet IoHandler som ligger i modul SPI.
GetContact.java
hanterar GET request som hämtar data från databasenGetContactInsert.java
hanteres en insert till databasen via GET (Url-parametrar)GetFile.java
hanterar GET request för filerPostContact.java
hanterar insert till Databasen via POST
Följande url-sökvägar är tillgängliga:
/postviaget.html
: skapa kontakt i databas via GET-metod; kontakt returneras som Json objekt/postviapost.html
: skapa kontakt i databas via POST-metod; kontakt returneras som Json objekt/contacts/
: returnerar alla kontakter från databas som Json/contacts/id
: returnerar respektive kontakt från databas som Json
Klona repository och kör programmet från terminalen eller i en IDE (till ex. Intellji).
-
$ git clone https://github.com/boalbert/HttpServerWebservices.git
-
Packa upp 'Webservices.zip' och filer under:
.../users/documents/Webservices
. (Exempelvis:C:\Users\fornamn.efternamn\Documents\Webservices
) -
Compile och kör programmet med Maven
Implementation av databasen hanteras i persistence-filen.