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

Andyx1975

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>
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück