Free Data Structures and Algorithms Course









Subscribe below and get all best seller courses for free !!!










OR



Subscribe to all free courses

How to write a Servlet code to download a Jar or file from the Server at a specified location ?.

A simple application demonstrating how to write a Servlet code to download a Jar or file from the Server at a specified location.

1. A simple html file for sending a get request to server for the Jar/file.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Download Jar</title>
</head>
<body>

 <h2>Download Page !!!!</h2>

 <a href="DownloadJarServlet">Download Jar</a>


</body>
</html>


2. Servlet code for downloading a Jar/file to a specified location on client's machine.
package com.download.jar;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/DownloadJarServlet")
public class DownloadJar extends HttpServlet {

 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request, 
   HttpServletResponse response) 
     throws ServletException, IOException {

  // 1. Helping the browser to understand that it is 
  // a jar file not an html content.
  // Inorder to pass this information in response
  // we set the content type as "application/jar" 
  // by calling setContentType() method in response object 
  response.setContentType("application/jar");

  // 2. Getting the ServletContext object by calling
  // getServletContext() method from the current servlet object  
  ServletContext ctx = getServletContext();

  // 3. From ServletContext object we are calling getResourceAsStream()
  // which returns the resource located at the named path as an InputStream object. 
  // The data in the InputStream can be of any type or length. 
  // This method returns null if no resource exists at the specified path.
  // here we are passing the jar name present in the server at the relative path 
  InputStream is =  ctx.getResourceAsStream("/mail.jar");

  int read = 0;

  byte[] noOfBytes = new byte[1024];

  // 4. Getting the outputstream from the response object to write 
  // contents of jar to browser
  OutputStream os = response.getOutputStream();

  // 5. Reading the contents of jar in bytes using the inputstream created above
  // and writing it to the browser through outputstream created above.
  while((read = is.read(noOfBytes)) != -1 ){
   os.write(noOfBytes, 0 , read);
  }

  os.flush();
  os.close();

 }

}




(Output) Running Download.html :




(Output) On clicking the "Download Jar" link we get the download file pop-up (Save as to specified location)


 
© 2021 Learn Java by Examples Template by Hubberspot