⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trombidispatcherservlet.java

📁 OPIAM stands for Open Identity and Access Management. This Suite will provide modules for user & rig
💻 JAVA
字号:
/*
 * OPIAM Suite
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */

package opiam.admin.applis.demo.servlets;


import opiam.admin.faare.MessageUtil;
import opiam.admin.faare.service.services.trombinoscope.TrombinoscopeGenerator;

import org.apache.log4j.Logger;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;


/**
 * This servlet sends a PDF trombinoscope as attached PDF file.<br>
 * HTTP PARAMETERS :<br>
 * <li>entries : name of a session attribute containing the list of entries</li>
 * <li>attribs : name of a session attribute containing the list of attributes</li>
 * <li>start : start index</li>
 * <li>nb : number of entries</li>
 * <li>cols : number of columns</li>
 *<br>
 * WARNING : do not forget to configure the servlet in web.xml.
 * 
 * This class is a specification of the "opiam.admin.faare.struts.servlets.TrombiDispatcherServlet" class.
 */
public class TrombiDispatcherServlet extends HttpServlet
{
    /** Log4j logger. */
    private static Logger _logger =
        Logger.getLogger(TrombiDispatcherServlet.class);

    /**
     * Servlet processing method.
     * See HttpServlet.doGet
     *
     * @param request HTTP request
     * @param response HTTP response
     *
     * @throws java.io.IOException see HttpServlet
     * @throws javax.servlet.ServletException see HttpServlet
     */
    public final void doGet(final HttpServletRequest request,
                            final HttpServletResponse response
                           ) throws IOException, ServletException
    {
        String startS = request.getParameter("start");
        String colsS = request.getParameter("cols");
        String nbS = request.getParameter("nb");
        String entriesS = request.getParameter("entries");
        String attribsS = request.getParameter("attribs");
        String formatS = request.getParameter("format");

        _logger.debug("start = " + startS);
        _logger.debug("cols = " + colsS);
        _logger.debug("nb = " + nbS);
        _logger.debug("entries = " + entriesS);
        _logger.debug("attribs = " + attribsS);

        if ((entriesS == null) || entriesS.trim().equals(""))
        {
            throw new ServletException(MessageUtil.getMessageString("MSG_ARGUMENT_NULL"));
        }

        if ((attribsS == null) || attribsS.trim().equals(""))
        {
            throw new ServletException(MessageUtil.getMessageString("MSG_ARGUMENT_NULL"));
        }

        if ((startS == null) || startS.trim().equals(""))
        {
            startS = "0";
        }

        if ((colsS == null) || colsS.trim().equals(""))
        {
            colsS = "5";
        }

        try
        {
            HttpSession session = request.getSession();
            int start = Integer.parseInt(startS);
            int cols = Integer.parseInt(colsS);
            List entries = (List) session.getAttribute(entriesS);

            // List attribs = (List) session.getAttribute(attribsS);
            StringTokenizer stk = new StringTokenizer(attribsS, "_");
            ArrayList attribs = new ArrayList();

            while (stk.hasMoreTokens())
            {
                attribs.add(stk.nextToken());
            }

            int nb;

            if ((nbS == null) || nbS.trim().equals(""))
            {
                nb = entries.size();
            }
            else
            {
                nb = Integer.parseInt(nbS);
            }

            ByteArrayOutputStream output;

            if ((formatS == null) || (formatS.equals("pdf")))
            {
                output =
                    TrombinoscopeGenerator.generatePdfTrombinoscope(start,
                                                                    cols, nb,
                                                                    entries,
                                                                    attribs
                                                                   );

                response.setContentType("application/pdf");
                response.setHeader("Content-disposition",
                                   "attachment; filename=trombi.pdf"
                                  );
            }
            else
            {
                List trombs =
                    TrombinoscopeGenerator.generateTrombinoscope(start, cols,
                                                                 nb, entries,
                                                                 attribs,
                                                                 formatS
                                                                );

                response.setContentType("image/" + formatS);
                response.setHeader("Content-disposition",
                                   "attachment; filename=trombi." + formatS
                                  );

                if (trombs != null)
                {
                    output = (ByteArrayOutputStream) trombs.get(0);
                }
                else
                {
                    output = new ByteArrayOutputStream();
                }
            }

            byte[] byteArray = output.toByteArray();
            _logger.debug("byteArray length : " + byteArray.length);

            ServletOutputStream servletOutputStream =
                response.getOutputStream();

            servletOutputStream.write(byteArray, 0, byteArray.length);
            servletOutputStream.flush();

            // Flush and close streams
            servletOutputStream.close();

            return;
        }
        catch (Exception se)
        {
            se.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -