# Erstellen eines CMS



## SchachFritz (22. Jul 2005)

Guten Tag, 

ich bin zur Zeit dabei eine dynamische Website zu erstellen. Ich bin nun am Punkt angelangt, wo ich das Interface für die Eingabe der Informationen erstellen muss.

Es handelt sich um eine Homepage eines Vereins. Die Meisten kennen sich jedoch nicht mit HTML aus. Da sie ja aber auch Informationen auf die Hp setzen sollen/müssen, habe ich eine SQL-DB benutzt um die Informationen zu speichern. Diese werden dann mit Hilfe von PHP ausgelesen und auf der HP dargestellt. 

Das was ja nun noch fehlt ist die Möglichkeit diese Informationen sauber in die Datenbank einzugeben. Die HP ist einfach strukturiert. Es würden ein paar Eingabemasken genügen. Allerdings mag ich nicht so gerne auf HTML und PHP zurückgreifen, da ich dies trotzdem ziemlich statisch finde. 
Daher wäre es mir lieder, wenn ich dies auch mit Hilfe eins Applets oder Servlets bewerkstelligen könnte.

Am Anfang dachte ich daran eine standalone Applikation zu schreiben. Jedoch habe ich keinen Zugriff auf das CGI-BIN Verzeichniss. Die Dateien müssen also auf dem Server ausgeführt werden. 

Daher habe ich mich gefragt ob es nicht möglich wäre, ein Applet zu schreiben. Da das Applet ja auch nicht auf dem Server ausgeführt wird, müsste man ja schon ein Servlet benutzen das mit dem Applet kommuniziert. 

Leider kenne ich mich nicht so mit Servlets aus. Ist es möglich bei Servlets auch graphische Objekte zu benutzen wie z.B. Swing ?

Ich hoffe Ihr könnt mich in dieser Sache beraten. 

Danke im Voraus.


----------



## stev.glasow (22. Jul 2005)

Ne, Servlets sind ehr mit PHP zu vergleichen (bitte nicht hauen) generieren also html, aber mit nem applet sollte das eigentlich gut gehen. Oder ist der Zugriff auf die Datenbank auf localhost beschränkt?


----------



## SchachFritz (22. Jul 2005)

Danke für deine Hilfe. 

Nein die DB ist nicht beschränkt. Aber wie kann ich dann mit einem Applet, Dateien auf den Server laden?


----------



## stev.glasow (22. Jul 2005)

Achso, ich dachte du pflegst nur Text ein.
Hast du nen FTP-Server auf dem Server zu laufen? Wenn ja könntest  du die Dateien übers FTP übertragen(per Applet versteht sich).


----------



## SchachFritz (22. Jul 2005)

Ja ich habe einen FTP Server laufen. Wie würde das denn gehen , mit dem Applet meine ich.


----------



## stev.glasow (22. Jul 2005)

Grob: Du lädst die Daten mit nem FileInputStream von der Festplatte, dazu muss das Applet signiert sein (mal bei google oder im forum suchen wie das geht) und überträgst die Daten mit nem FTP-Client (auch mal im Forum suchen - da gibt es verschiedene Lösungsansätze) - das war es eigentlich schon.


----------



## SchachFritz (23. Jul 2005)

Kann ich denn die Dateien danach auch wieder löschen ?


----------



## Dukel (23. Jul 2005)

stevg hat gesagt.:
			
		

> Ne, Servlets sind ehr mit PHP zu vergleichen (bitte nicht hauen) generieren also html, aber mit nem applet sollte das eigentlich gut gehen. Oder ist der Zugriff auf die Datenbank auf localhost beschränkt?



Eher mit JSP. Normal wird der Php / Jsp Code in die Html Datei eingebunden.


----------



## stev.glasow (23. Jul 2005)

SchachFritz hat gesagt.:
			
		

> Kann ich denn die Dateien danach auch wieder löschen ?


Jo, Löschen wird ja auch von FTP unterstützt.



			
				Dukel hat gesagt.:
			
		

> stevg hat gesagt.:
> 
> 
> 
> ...


In wie fern 'eher'? Er wollte doch sein Backend nicht in HTML haben.

Und PHP und JSP (im Endeffekt macht das ja ein Servlet) generieren HTML (unter anderem - du kannst auch Bilder, XML-Dokumente etc. generieren). Und in PHP ist es eigentlich üblich das HTML Zeugs in Templates auszulagern um Programlogik vom Design zu trennen.


----------



## Dukel (24. Jul 2005)

> Dukel hat gesagt.:
> 
> 
> 
> ...



Servlets generieren den Html Code, bei JSP und PHP wird der Code in die Html Datei reingeschrieben. Daher ist Php mit JSP und nicht mit Servlets zu vergleichen. Ob man das irgendwie auslagert und das ganze zu trennen ist eine andere Geschichte.


----------



## stev.glasow (24. Jul 2005)

Wenn ich folgendenden Code habe

```
html
<body>
Test
<?php
echo 1 +1;
?>
</body>
html
```
much ich den als php-file speichern, damit der Webserver erkennt, dass der den gesamten Code durch den PHP Interpreter jagen muss. Der Webserver läßt dabei auch nicht nur die in dem <?php Tag befindlichen Code interpretieren, sondern das ganze Dokument, der Webserver leitet dann nur die Ausgabe vom PHP-Interpreter weiter - und dafür dass der nicht im <?php tag befindliche Code nicht übersetzt werden soll sorgt der PHP-Interpreter. Der Webserver kennt überhaupt keine <?php Tags, der kennt nur die Dateiendung .php und den Ort des Interpreteres für diese Dateiendung.

Und wenn ich folgendes JSP-File habe:

```
<html>
<body>
Test
<% out.print(1 + 1); %>
</body>
</html>
```
wird wieder duch die Dateiendung .jsp erkannt dass es sich hier bei um jspcode handelt: Der *gesamte* Code wird dann wieder durch die JSP Maschine gejagt (falls dies noch nicht getan wurde), welche den Code für ein Servlet generiert und kompiliert, der Bytecode wird dann vom Java Interpreter übersetzt und dessen Ausgaben, etc. vom Webserver an den Browser weitergeleitet.
Wenn man sich den Code vom generierten Servlet anschaut sieht man gut was passiert:

```
package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

public final class JspTest_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static java.util.Vector _jspx_dependants;

  public java.util.List getDependants() {
    return _jspx_dependants;
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    JspFactory _jspxFactory = null;
    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;


    try {
      _jspxFactory = JspFactory.getDefaultFactory();
      response.setContentType("text/html");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

       // -------- HIER --------
      out.write("<html>\r\n");
      out.write("<body>\r\n");
      out.write("Test\r\n");
      out.print(1 + 1);
      out.write("\r\n");
      out.write("</body>\r\n");
      out.write("</html>");

    } catch (Throwable t) {
      if (!(t instanceof SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          out.clearBuffer();
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
      }
    } finally {
      if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }
}
```


----------



## freez (24. Jul 2005)

Vielleicht verstehe ich das verkehrt, aber deine Informationen sollen in eine SQL Datenbank, oder?
Wie greifst du nicht mit dem Applet auf die Datenbank zu?


----------

