package javaside.servlet.sample ;
//******************************************************************************
// -----------------------------------------------------------
// zipservlet.java
// -----------------------------------------------------------
// Main class for sample servlet
// -----------------------------------------------------------
// Author : R. BERTHOU
// E-Mail : rbl@berthou.com
// URL : http://www.javaside.com/
// -----------------------------------------------------------
// Ver * Author * DATE * Description
// ....................DD/MM/YY...............................
// 1.00 * R.BERTHOU * 12/01/01 *
//******************************************************************************
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.zip.*;
import java.net.*;
import java.util.*;
public class zipservlet extends HttpServlet {
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
byte b[]=new byte[300000];
URL url;
String temp;
ByteArrayOutputStream bout=new ByteArrayOutputStream();
ZipOutputStream zout=new ZipOutputStream(bout);
ServletOutputStream out = res.getOutputStream();
ServletContext servletContext = getServletContext();
if ((temp=req.getParameter("url"))!=null)
{
try {
url=new URL(temp);
URLConnection uc = url.openConnection();
DataInputStream input = new DataInputStream(uc.getInputStream());
int numRead=0;
int size=0;
while (numRead != -1) {
numRead = input.read(b,size,20000);
size+=numRead;
}
zout.putNextEntry(new ZipEntry("file.html"));
zout.write(b,0,size);
zout.closeEntry();
zout.finish();
String zip=bout.toString();
res.setContentType("application/zip");
res.setHeader("Content-Disposition","inline; filename=output.zip;");
out.println(zip);
out.flush();
}
catch (Exception e)
{
res.setContentType("text/html");
out.println("<html><head><title>Error</title></head>");
out.println("<body><b>");
out.println("An error has occured while processing "+temp+"<br>");
out.println("Here is the exception: <br>"+e+"<br>");
e.printStackTrace(new PrintWriter(out));
out.println("</body>");
out.println("</html>");
}
}
}
}
|