Huhu.
Bin zurzeit ein kleines Webentwickler-Tool am schreiben:
Der "Editor" hat einen kleinen Webserver Implementiert, besizt einen Quellcodeeditor mit Syntax-highlighting, etc.
Ich habe gestern versucht einen Webserver zu implementieren.
Relativ einfach, wenn man dies einmal verstanden hat.
Der Webserver spuckt z.B. diverse Errors aus, sofern diese verursacht werden (404 - Nicht gefunden, 500 - Servererror, 200 - OK, etc), Directorylisting eingebaut, selbst PHP habe ich dort implementiert.
Alles soweit so gut.
Über jedem Webbrowser (Firefox, IE, etc.) ist der Webserver auch über localhost erreichbar - HTML-Files werden ausgegeben, Bilder auch, PHP wird ausgeführt und macht seine Ausgaben, und so weiter und so fort.
Ich habe mir jezt folgendes Gedacht:
Neben dem Quelltext-Editor möchte ich dort noch eine "Preview" einbauen, sodass z.B. PHP-Dateien über den Webserver angesprochen werden.
Eigendlich etwas nettes. So sieht man beim Programmieren direkt das Resultat (Beispielsweise bei PHP).
Da ich der Absolute PHP-Freak bin, und auch schon über 5 Jahre lang damit arbeite, möchte ich nun meine Programmierkünste vereinfachen. Es ist nämlich hin und wieder sehr lästig, wenn man ein Editor offen hat (beispielsweise Notepad++), dann noch ein FTP Programm (Ich arbeite meist über SSH mit WinSCP) und gleichzeitig noch einen Webbrowser, wo man ständig hin und Her wurschteln muss.
Das möchte ich mit meinem Toolbewerkstelligen möchte.
Nun zum Hauptthema:
Der Editor besizt einen Eingebauten Webserver (der über einer socket-connection arbeitet, natürlich Multithreaded) - Dieser ist erreichbar und dieser ist auch soweit fertiggestellt, das man sagen kann "OK, Geil - Es läuft so wie ich es mir vorstelle".
Jezt möchte ich zum Editor noch einen kleinen Webbrowser implementieren.
Gut - Nehmen wir nen JEditorPanel und lassen ihn mit dem Webserver (Domain ist reserviert) verbinden und z.B. eine index.html ausgeben.
Genau dies bereitet mir schwierigkeiten, wobei ich nicht weiß ob dies an meinem kleinen Webserver liegt.
Google & Co (wie auch andere Seiten) gibt er richtig aus. Die Seiten werden dort 1a Angezeigt.
Sobald ich aber versuche den Inhalt von meinem kleinen Webserver anzeigen zu lassen, so bekomme ich nur den quelltext ausgegeben anstatt der seite.
Jezt zu meiner Frage:
Was muss ich generell bei der Implementierung eines Webservers beachten, damit ich eine gezielte ausgabe habe? (diverse eigenschaften wie Dateilänge, Mime-Type, etc werden übermittelt)
Wie visualisiere ich den "Browser" so, das er die Seite richtig ausgibt (Muss ich einen HTML-Parser benutzen?)?
Infos zu meinem Webserver:
> Socket wird auf definiertem Port aufgebaut
> Bei Client-Connect neuer Thread
> Lese "Root-dir"
> Lese angeforderte Datei ein (beispielsweise index.html)
> angeforderte Datei als text/html-Mime Type erkannt, setze dies im Header-request
> Contentlänge im Header-request setzen
> Sende Datei an Client
--> Ausgabe der Datei im Browser
Das so kurz und knapp zur arbeitsweise.
Habe schon einige "Java Browser" beispiele angeschaut, alles das selbe Prinzip, selber aufbau.
Aber irgendwie will der nur den Quelltext der Datei ausgeben ^^
Sry das ich momentan keinen Code posten kann.
Bin gerade nach hause gekommen und habe die Source vom Editor leider im Büro.
Ich danke euch für Infos
Bin zurzeit ein kleines Webentwickler-Tool am schreiben:
Der "Editor" hat einen kleinen Webserver Implementiert, besizt einen Quellcodeeditor mit Syntax-highlighting, etc.
Ich habe gestern versucht einen Webserver zu implementieren.
Relativ einfach, wenn man dies einmal verstanden hat.
Der Webserver spuckt z.B. diverse Errors aus, sofern diese verursacht werden (404 - Nicht gefunden, 500 - Servererror, 200 - OK, etc), Directorylisting eingebaut, selbst PHP habe ich dort implementiert.
Alles soweit so gut.
Über jedem Webbrowser (Firefox, IE, etc.) ist der Webserver auch über localhost erreichbar - HTML-Files werden ausgegeben, Bilder auch, PHP wird ausgeführt und macht seine Ausgaben, und so weiter und so fort.
Ich habe mir jezt folgendes Gedacht:
Neben dem Quelltext-Editor möchte ich dort noch eine "Preview" einbauen, sodass z.B. PHP-Dateien über den Webserver angesprochen werden.
Eigendlich etwas nettes. So sieht man beim Programmieren direkt das Resultat (Beispielsweise bei PHP).
Da ich der Absolute PHP-Freak bin, und auch schon über 5 Jahre lang damit arbeite, möchte ich nun meine Programmierkünste vereinfachen. Es ist nämlich hin und wieder sehr lästig, wenn man ein Editor offen hat (beispielsweise Notepad++), dann noch ein FTP Programm (Ich arbeite meist über SSH mit WinSCP) und gleichzeitig noch einen Webbrowser, wo man ständig hin und Her wurschteln muss.
Das möchte ich mit meinem Toolbewerkstelligen möchte.
Nun zum Hauptthema:
Der Editor besizt einen Eingebauten Webserver (der über einer socket-connection arbeitet, natürlich Multithreaded) - Dieser ist erreichbar und dieser ist auch soweit fertiggestellt, das man sagen kann "OK, Geil - Es läuft so wie ich es mir vorstelle".
Jezt möchte ich zum Editor noch einen kleinen Webbrowser implementieren.
Gut - Nehmen wir nen JEditorPanel und lassen ihn mit dem Webserver (Domain ist reserviert) verbinden und z.B. eine index.html ausgeben.
Genau dies bereitet mir schwierigkeiten, wobei ich nicht weiß ob dies an meinem kleinen Webserver liegt.
Google & Co (wie auch andere Seiten) gibt er richtig aus. Die Seiten werden dort 1a Angezeigt.
Sobald ich aber versuche den Inhalt von meinem kleinen Webserver anzeigen zu lassen, so bekomme ich nur den quelltext ausgegeben anstatt der seite.
Jezt zu meiner Frage:
Was muss ich generell bei der Implementierung eines Webservers beachten, damit ich eine gezielte ausgabe habe? (diverse eigenschaften wie Dateilänge, Mime-Type, etc werden übermittelt)
Wie visualisiere ich den "Browser" so, das er die Seite richtig ausgibt (Muss ich einen HTML-Parser benutzen?)?
Infos zu meinem Webserver:
> Socket wird auf definiertem Port aufgebaut
> Bei Client-Connect neuer Thread
> Lese "Root-dir"
> Lese angeforderte Datei ein (beispielsweise index.html)
> angeforderte Datei als text/html-Mime Type erkannt, setze dies im Header-request
> Contentlänge im Header-request setzen
> Sende Datei an Client
--> Ausgabe der Datei im Browser
Das so kurz und knapp zur arbeitsweise.
Habe schon einige "Java Browser" beispiele angeschaut, alles das selbe Prinzip, selber aufbau.
Aber irgendwie will der nur den Quelltext der Datei ausgeben ^^
Sry das ich momentan keinen Code posten kann.
Bin gerade nach hause gekommen und habe die Source vom Editor leider im Büro.
Ich danke euch für Infos