Parameterübergabe an Servlet und Aufruf von Servlets per Java Code

andyx1975

Aktives Mitglied
Hallo,

ich habe ein Servlet geschrieben das Dateien vom Webserver runterlädt. Wenn ich "http://127.0.0.1:8888/download/" im browser eingebe funktioniert das Servlet. Ich habe den gewünschten Dateinamen im Servlet fest hinterlegt (fileName= "text.txt"). Ich möchte jetzt aber, dass der Dateiname vom WebBrowser an das Servlet übergeben wird. Kann mir jemand verraten wie ich das anstelle? Bin ziemlich neu was Servlets und Webprogrammierung angeht.

Des weiteren ist mir momentan unklar, wie ich das Servlet per JavaCode aufrufen kann. Kann mir jemand weiterhelfen?

Danke
Andy



Mein Java Servlet:
Java:
package com.uds.webadmin.server;

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CFileDownload
    extends HttpServlet
{

    @Override
    protected void doGet( HttpServletRequest req, HttpServletResponse resp )
        throws ServletException, IOException
    {
        
        //Der hier fix eingetragene Wert soll beim Aufruf des Servlets vom WebBrowser (Client übergeben werden). Wie muss ich das machen? 
        // Und wie muss ich das Servlet per Java Code aufrufen?
        String fileName= "text.txt"; // 
        
        
        String path = getServletContext().getRealPath( "/" ) + "uploads/";
        
        File                f        = new File(path + fileName);
        int                 length   = 0;
        ServletOutputStream op       = resp.getOutputStream();
        ServletContext      context  = getServletConfig().getServletContext();
        String              mimetype = context.getMimeType( fileName );


        resp.setContentType( (mimetype != null) ? mimetype : "application/octet-stream" );
        resp.setContentLength( (int)f.length() );
        resp.setHeader( "Content-Disposition", "attachment; filename=\"" + fileName + "\"" );


        byte[] bbuf = new byte[1024];
        DataInputStream in = new DataInputStream(new FileInputStream(f));

        while ((in != null) && ((length = in.read(bbuf)) != -1))
        {
            op.write(bbuf,0,length);
        }

        in.close();
        op.flush();
        op.close();
    }
    

}

Meine web.xml
[XML]
<!-- FileDownload -->
<servlet>
<servlet-name>FileDownload</servlet-name>
<servlet-class>com.uds.webadmin.server.CFileDownload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileDownload</servlet-name>
<url-pattern>/download/*</url-pattern>
</servlet-mapping>
[/XML]
 
S

SlaterB

Gast
puh, gar keine Grundlagen zum Web an sich, Formulare,
Paramter der Form "link?name=xy" unbekannt?

das ist ja nicht so leicht, auch Paramter aus HttpServletRequest-auslesen muss gelernt werden..

das kann man ja nicht in einem Forum besprechen, lies dir Links wie
Servlet Tutorial: Handling Form Data
durch oder gleich ein 300 Seiten-Grundlagenbuch (zu J2EE)..

-----

ein Servlet per Java-Code aufrufen ist normalerweise nicht vorgesehen, was bezweckst du damit?
du könntest Code in separate Klassen stecken, die entweder von deinem Servlet oder eben von beliebiger andere Stelle aufgerufen werden
 
N

nillehammer

Gast
Parameter können an eine Webanwendung z.B. über folgende Wege übergeben werden:
- Als Parameter in der URL in einem GET-Request, bspw. so:
Code:
http://meinHost:meinPort/FileDownload?file=meinFile
- Als Parameter in einem POST-Body. Dafür wäre dann ein html-Formular zu programmieren. Z.B. so:
HTML:
<form action="http://meinHost:meinPort/FileDownload" method="post">
  <label for="file">Namen der Datei eingeben</label><input type="text" id="file" />
  <input type="submit">Downloaden</input>
</form>

Die Parameter werden dann in der entspr. handler-Methode des Servlets ausgelesen (also doGet bei der URL-Variante und doPost bei der Formularvariante). Das sieht dann in beiden Fällen etwa so aus:
Java:
final String fileName = req.getParameter("file");

Habe den Code aus dem Gedächtnis getippt. Kann also sein, dass ein paar Syntaxfehler drinnen sind. Aber das Prinzip sollte klar sein. Abgesehen davon noch ein Sicherheitshinweis. Du musst die Parameter unbedingt validieren oder auf eine bestimmte Menge einschränken. Sonst öffnest Du bösen Hackern damit ein Tor auf Dein Filesystem.
 

andyx1975

Aktives Mitglied
Ja genau... ich benutze SmartGWT bzw. GWT...sind beides JavaScript Frameworks. Dadurch funktioniert einiges anders als bei herkömmlichen JSP und Servlets.

Gruß
Andy
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K JSF Unified-EL- Methode mit Parameterübergabe Web Tier 9
P Problem der Parameterübergabe aus Iframe Web Tier 15
M JSF: Parameterübergabe an Properties-Datei aus JSF-Tag heraus? Web Tier 4
M CustomTags mit Body und Parameterübergabe Web Tier 2
H problem bei Parameterübergabe mit beans Web Tier 3
G JSF Parameterübergabe Web Tier 3
M Parameterübergabe an die TagKlasse Web Tier 4
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
R servlet-mapping führt zu 404-Fehlern Web Tier 0
B Servlet mit TomCat9 Web Tier 0
A redirect mit servlet-mapping in web.xml Web Tier 4
J Wie Mouse Event in Servlet einbinden? Web Tier 1
D JSF Servlet Mapping Web Tier 3
J Session Servlet - JavaScript Web Tier 6
D Servlet 1 Servlet für alles - Wie Cookies per Ajax? Web Tier 1
S Problem mit Checkboxen im Servlet erkennen Web Tier 3
Todesbote Servlet MVC Design Pattern Web Tier 1
A Anfänger-Frage Servlet/Applet/JSP Web Tier 0
Shams Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin) Web Tier 2
H File Output Servlet Web Tier 6
I vTiger Astersik Connector: NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet Web Tier 0
OnDemand Servlet oder JSP Web Tier 12
H Servlet/JSP und OSGI Web Tier 2
L Servlet Datenbank Web Tier 0
D Java EE Servlet login Problem Web Tier 1
W Servlet SPEICHERN UNTER-Dialog für mehrere Dateien Web Tier 4
A Faces Context nicht mehr erreichbar nach Servlet Aufruf Web Tier 1
S Java Bean und Java Servlet Web Tier 2
D Servlet Servlet Weiterleitung static html Web Tier 5
G GWT 404 - Servlet nicht gefunden Web Tier 6
H Applet wirft AccessControlException bei File von Servlet Web Tier 3
H Servlet lässt sich nicht deployen Web Tier 7
C Kommunkation Servlets/Browseraufruf Servlet Web Tier 4
F.S.WhiTeY Servlet Servlet wird nicht angesprochen Web Tier 3
J Servlet Zugriff Servlet Web Tier 11
A JSON von JavaScript an Servlet Web Tier 9
K Servlet + JSP: JSP-Seite ein Array/ArrayList überliefern vom Controller-Servlet Web Tier 8
0 Servlet.Properties Web Tier 3
P Servlet Wo gibt es das javax.servlet.Servlet? Web Tier 2
H Servlet Servlet nimmt HTTP-GET mit Parameter entgegen Web Tier 2
5 Bild Pfad Servlet Web Tier 2
D Datenbankzugriff im Servlet Web Tier 5
H Servlet Apache Geronimo: Servlet nicht erreichbar Web Tier 2
S Ich brauche Buchempfehlung über JSP und Servlet Web Tier 2
S Auswahl eine Zeile von einer HTML Tabelle im Servlet Web Tier 4
K Servlet URL Mapping Web Tier 3
S ClassPath für Servlet Web Tier 3
reibi Servlet Logging - Standard Servlet Web Tier 5
K Portlet, Servlet doGet und doPost Web Tier 4
reibi Servlet Alleinlaufendes Servlet bauen Web Tier 6
P Servlet wird nicht gefunden - HTTP Error 503 Web Tier 7
lukas24680 Servlet pro Request Web Tier 2
C Pageing mit JSp&Servlet Web Tier 5
D JSP JSP integriert ein Servlet... Wie? Web Tier 7
I Servlet vor Browser URL-Direktzugriff schützen Web Tier 3
N Servlet ausführen Web Tier 26
B statische Html Seite als response erhalten (Servlet) Web Tier 3
A javax/servlet/jsp/jstl/core/Config Web Tier 1
F Servlet mapping ;-) Web Tier 3
H Servlet Mapping mit JSF Web Tier 8
B (JSP)+(Struts2)+(Servlet) Konfiguration web.xml Web Tier 2
W MVC mit Bean, JSP und Servlet Web Tier 6
T Button im Servlet - Werte übergeben Web Tier 2
J werte per post an servlet übergeben und auswerten Web Tier 3
ruutaiokwu HttpServletRequest-instanz in servlet und JSP unterschiedlich? Web Tier 5
T Bild durch anderes Bild ersetzen mit Servlet Web Tier 3
E Mein erstes Servlet Web Tier 8
S Servlet automatisch aufrufen Web Tier 2
J Kommunikation zwischen Servlet und EJB Web Tier 6
C Image in Servlet Web Tier 2
S Servlet File Upload (API oder JSPSmart download) Web Tier 4
N API Nutzung SERVLET Web Tier 12
J Memory Leak in Servlet nach längere Laufzeit Web Tier 6
ruutaiokwu template engine gesucht ohne abhängigkeit zum servlet container Web Tier 2
G Servlet Ausgabe richtig benutzen Web Tier 4
W Servlet auf sich selbst verweisen lassen (Anfängerfrage) Web Tier 6
M Servlet Ausführungsfehler Web Tier 4
D Servlet alle 6h ausführen Web Tier 5
M Servlet & JSP Organisation Web Tier 2
J seltsames Auslastungsproblem bei Servlet Web Tier 7
ruutaiokwu JSF - läuft ausserhalb des servlet-containers? Web Tier 5
R Direkten Servlet-Aufruf verhindern (JSP) Web Tier 3
K Formularweiterleitung an Servlet Web Tier 5
N Servlet: Problem mit getParameterValues Web Tier 4
J Dateiupload- Servlet Web Tier 14
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
G Kommunikation Servlet + Applikation Web Tier 4
megachucky Welche Servlet-Version benötigt GWT 2.0? Web Tier 13
X Servlet Select box Web Tier 6
S Java Servlet Content Type Web Tier 3
E Servlet zum speichern einer Datei in einer Datenbank Web Tier 3
M Servlet neuladen Web Tier 2
H Wie wurde ein Servlet aufgerufen Web Tier 2
J Servlet soll XML ausgeben und Javascript soll dieses einlesen Web Tier 3
H servlet fehlermeldung Web Tier 3
W JSP/Servlet Web Applikation programmierung Web Tier 9
J Faces response aus einem anderen Servlet heraus rendern Web Tier 4
E Servlet mit einem Link aufrufen? Web Tier 13
D Servlet FacesServlet is not available und Web Tier 3
S servlet bedienen mit get und post parameter Web Tier 10

Ähnliche Java Themen

Neue Themen


Oben