Cómo crear un archivo zip en Java

Tengo un archivo de texto dinámico que selecciona contenido de una base de datos de acuerdo con la consulta del usuario. Tengo que escribir este contenido en un archivo de texto y comprimirlo en una carpeta en un servlet. ¿Cómo debería hacer esto?