Phadproblematik bei Servlets (wie kann ich auf config.xml datei zugreifen)

Rahul

Grünschnabel
hi,

Ich programmiere ein Servlet. Bein zugriff auf eine Quelle möchte keine statische Phade oder URLs eingeben, sondern das ganze mit einem sogenannte config.xml datei erledigen. Weiß allerdings nicht wie :(

Kann mir jemand etwas darüber sagen ?
Irgendwelche Tutorials, Literatur, online Dokumentation

ich danke die jenigen, die mir Helfen :)

gruß

Rahul
 
Hi,

schilder das Problem doch mal etwas genauer. Welche Informationen willst du aus einer XML-Datei auslesen und was willst du dann damit machen?
Und an welcher Stelle kommst du nicht weiter?
 
Hi noch mal,

also z.B wenn man folgendes Listing hat :
Code:
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class BinarySender extends HttpServlet
{
  public void doGet( HttpServletRequest request, HttpServletResponse response )
      throws ServletException, IOException
  {
    String filename = "C:/Wasserlilien.jpg"; // Statt so ein statisches Phad will ich schreiben --> String filename = " config.xml " ; 
    InputStream in = new BufferedInputStream(new FileInputStream(filename) );

    String s = URLConnection.guessContentTypeFromStream(in);
    response.setContentType( s );

    byte pic[]= new byte[in.available()];
    in.read( pic );

    OutputStream out = response.getOutputStream();
    out.write( pic );
  }
}
 
Zuletzt bearbeitet von einem Moderator:
ServletContext#getRealPath();
ist dein freund:

String path = getServletContext().getRealPath("confix.xml");

irgendeine art von Configdatei sollte aber nicht im Webanwendungsroot liegen, sondern
unter WEB-INF da es da nicht einsehbar ist.
Also kopier die config.xml besser ins WEB-INF Verzeichniss und passe dementsprechend das so an:

String path = getServletContext().getRealPath("WEB-INF/confix.xml");


Kann mir jemand etwas darüber sagen ?
Irgendwelche Tutorials, Literatur, online Dokumentation

Wie du .xml Dateien mittels JDOM ausliest habe ich in einem tutorial beschrieben.
Mit dem RequestDispatcher kannst du deine Logic auf ein anderes Servlet oder JSP forwarden.
Damit kannst du das bewerkstelligen, aber wenn du ne art XML getriebener FrontController entwickeln willst (und danach hört sich das für mich an) schau dir
bei gelegenheit jakarta Struts an, (jakarta.apache.org/struts) denn die haben genau
das sehr professionell umgesetzt und bieten das als OpenSource an.
 
hi,

vielen danke Christian für die informaion :)

noch ein frage. Kann man es auch mit web.xml ?
wie folgt :

<servlet>
<servlet-name>BinarySender</servlet-name>
<servlet-class>mypackage.BinarySender</servlet-class>
<init-param>
<param-name>filename</param-name>
<param-value>C:\Wasserlilien.jpg</param-value>
</init-param>
</servlet>


und im Servlet greife ich dann auf den init-param zu:

String filename = " ";

geht das überhaupt

danke im voraus

gruß
 
Original geschrieben von Rahul
hi,

vielen danke Christian für die informaion :)

noch ein frage. Kann man es auch mit web.xml ?
wie folgt :

<servlet>
<servlet-name>BinarySender</servlet-name>
<servlet-class>mypackage.BinarySender</servlet-class>
<init-param>
<param-name>filename</param-name>
<param-value>C:\Wasserlilien.jpg</param-value>
</init-param>
</servlet>


und im Servlet greife ich dann auf den init-param zu:

String filename = " ";

geht das überhaupt

danke im voraus

gruß

Du musst mit der Methode getInitParameter() des ServletContexts auf den Parameter zugreifen, und auslesen, dann geht das auch.
 

Neue Beiträge

Zurück