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:
Meine web.xml
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: