public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{....}
el cual realiza una acción según sea el caso puede responder con texto plano, html, xml, json ect, pero también puede ocupar el método
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
También puede responder de la misma manera que goGet, si nosotros queremos responder con html,json, xml, texto plano, o con un pdf que es al final de cuentas es resp.setContentType("application/pdf") que es un objeto de tipo HttpServletResponse resp que es lo que el servlet de responderá al cliente, como nosotros no sabemos como un cliente puede solicitar nuestro pdf nosotros tendremos que generar un método para ambos
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
Que en el caso de netbeans lo hace al crear un servlet, bueno si lo hacen con netbeans borren lo que tenga dentro de ese metodo.
El código es el siguiente:
package pdf.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Paragraph;
/**
*
* @author isaac
*/
public class CrearPdf extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
response.setContentType("application/pdf"); // Code 1
Document document = new Document();
PdfWriter.getInstance(document,response.getOutputStream()); // Code 2
document.open();
float[] widths = {25f, 25f, 20f,15f,15f};
PdfPTable table = new PdfPTable(5); //Code 3
table.setHorizontalAlignment(Element.ALIGN_LEFT);
table.setWidthPercentage(100);
PdfPCell cell =new PdfPCell(new Paragraph("Prueba"));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setColspan(5);
table.addCell(cell);
table.addCell("Scanned Fax FileName");
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell("Corporate Name");
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell("Corporate Account");
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell("Credit");
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell("Debit");
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
document.add(table);
document.close();
}catch(DocumentException e){
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
El web.xml es el siguiente en el caso de Netbeans no es necesario puesto que lo mapea cuando creas el servlet.
<servlet>
<servlet-name>CrearPdf</servlet-name>
<servlet-class>pdf.servlet.CrearPdf</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CrearPdf</servlet-name>
<url-pattern>/creaPdf</url-pattern>
</servlet-mapping>
y final mente run...
No hay comentarios.:
Publicar un comentario