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

📄 portletservlet.java

📁 GridSphere 门户 提供一个基于 portlet 的高级开放源代码门户。GridSphere 是在欧盟提供基金的 GridLab 项目下开发的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    log.debug("in PortletServlet: do processAction " + pid);                    PortletPreferencesManager prefsManager = appPortlet.getPortletPreferencesManager(pid, userId, false);                    request.setAttribute(SportletProperties.PORTLET_PREFERENCES_MANAGER, prefsManager);                    processAction(portlet, portalContext, request, response, cid, pid);                }            } else {                // create portlet preferences manager                PortletPreferencesManager prefsManager = appPortlet.getPortletPreferencesManager(pid, userId, true);                request.setAttribute(SportletProperties.PORTLET_PREFERENCES_MANAGER, prefsManager);                render(portlet, request, response, pid);            }        } else {            log.error("in PortletServlet: service(): No " + SportletProperties.PORTLET_LIFECYCLE_METHOD + " found in request!");        }    }    protected void processAction(Portlet portlet, PortalContext portalContext, HttpServletRequest request, HttpServletResponse response, String cid, String pid) throws ServletException {        ActionRequestImpl actionRequest = new ActionRequestImpl(request, portletContext);        ActionResponse actionResponse = new ActionResponseImpl(request, response);        String webappname = portletWebApp.getWebApplicationName();        PersistenceManagerRdbms pm = pms.getPersistenceManagerRdbms(webappname);        try {            if (pm != null) {                log.debug("Starting a database transaction for webapp: " + webappname);                pm.beginTransaction();            }            log.debug("in PortletServlet: action handling portlet " + pid);            // INVOKE PORTLET ACTION            portlet.processAction(actionRequest, actionResponse);            Map params = ((ActionResponseImpl) actionResponse).getRenderParameters();            request.setAttribute(SportletProperties.RENDER_PARAM_PREFIX + pid + "_" + cid, params);            log.debug("placing render params in session : key= " + SportletProperties.RENDER_PARAM_PREFIX + pid + "_" + cid);            // Commit and cleanup            log.info("Committing the database transaction");            if (pm != null) pm.endTransaction();        } catch (Throwable ex) {            //log.error("Error during processAction:", ex);            request.setAttribute(SportletProperties.PORTLETERROR + pid, ex);            if (pm != null) {                pm.endTransaction();                try {                    if (pm != null) pm.rollbackTransaction();                } catch (Throwable rbEx) {                    log.error("Could not rollback transaction after exception!", rbEx.getCause());                }            }            // Let others handle it... maybe another interceptor for exceptions?            //throw new ServletException(ex.getCause());        } finally {            try {                redirect(request, response, actionRequest, actionResponse, portalContext);            } catch (IOException e) {                log.error("Unable to handle redirect", e);            }        }    }    protected void render(Portlet portlet, HttpServletRequest request, HttpServletResponse response, String pid) throws ServletException {        RenderRequest renderRequest = new RenderRequestImpl(request, portletContext);        RenderResponse renderResponse = new RenderResponseImpl(request, response);        renderRequest.setAttribute(SportletProperties.RENDER_REQUEST, renderRequest);        renderRequest.setAttribute(SportletProperties.RENDER_RESPONSE, renderResponse);        log.debug("in PortletServlet: rendering  portlet " + pid);        if (renderRequest.getAttribute(SportletProperties.RESPONSE_COMMITTED) == null) {            String webappname = portletWebApp.getWebApplicationName();            PersistenceManagerRdbms pm = pms.getPersistenceManagerRdbms(webappname);            try {                if (pm != null) pm.beginTransaction();                portlet.render(renderRequest, renderResponse);                if (pm != null) pm.endTransaction();            } catch (UnavailableException e) {                try {                    portlet.destroy();                } catch (Exception d) {                    log.error("in PortletServlet(): destroy caught exception: ", d);                }            } catch (Throwable ex) {                //log.error("in render: caught exception: ", ex);                try {                    if (pm != null) {                        log.info("Committing database transaction for webapp: " + portletWebApp.getWebApplicationName());                        pm.endTransaction();                        pm.rollbackTransaction();                    }                } catch (Throwable rbEx) {                    throw new ServletException("Could not rollback transaction after exception!", rbEx);                }                throw new ServletException(ex);            }        }    }    protected void doTitle(Portlet portlet, RenderRequest request, RenderResponse response) throws IOException, PortletException {        Portlet por = (Portlet) portlet;        if (por instanceof GenericPortlet) {            GenericPortlet genPortlet = ((GenericPortlet) portlet);            if (genPortlet.getPortletConfig() == null)                throw new PortletException("Unable to get PortletConfig from Portlet");            ResourceBundle resBundle = genPortlet.getPortletConfig().getResourceBundle(request.getLocale());            String title = resBundle.getString("javax.portlet.title");            response.setContentType("text/html");            PrintWriter out = response.getWriter();            out.println(title);        }    }    protected void doGet(HttpServletRequest req, HttpServletResponse res)            throws ServletException, IOException {        super.doGet(req, res);    }    protected void doPut(HttpServletRequest req, HttpServletResponse res)            throws ServletException, IOException {        super.doPut(req, res);    }    protected void doPost(HttpServletRequest req, HttpServletResponse res)            throws ServletException, IOException {        super.doPost(req, res);    }    protected void doTrace(HttpServletRequest req, HttpServletResponse res)            throws ServletException, IOException {        super.doTrace(req, res);    }    protected void doDelete(HttpServletRequest req, HttpServletResponse res)            throws ServletException, IOException {        super.doDelete(req, res);    }    protected void redirect(HttpServletRequest servletRequest,                            HttpServletResponse servletResponse,                            ActionRequest actionRequest,                            ActionResponse actionResponse, PortalContext portalContext)            throws IOException {        if (actionResponse instanceof ActionResponseImpl) {            ActionResponseImpl aResponse = (ActionResponseImpl) actionResponse;            String location = aResponse.getRedirectLocation();            if (location != null) {                javax.servlet.http.HttpServletResponse redirectResponse = servletResponse;                while (redirectResponse instanceof javax.servlet.http.HttpServletResponseWrapper) {                    redirectResponse = (javax.servlet.http.HttpServletResponse)                            ((javax.servlet.http.HttpServletResponseWrapper) redirectResponse).getResponse();                }                log.debug("redirecting to location= " + location);                servletRequest.setAttribute(SportletProperties.PORTAL_REDIRECT_PATH, location);                //redirectResponse.sendRedirect(location);            } else {                // redirect as a GET render url back to the portal                PortletURL url = new PortletURLImpl(servletRequest, servletResponse, true);                Map params = aResponse.getRenderParameters();                url.setParameters(params);                servletRequest.setAttribute(SportletProperties.PORTAL_REDIRECT_PATH, url.toString());            }        }    }    /**     * Record the fact that a servlet context attribute was added.     *     * @param event The session attribute event     */    public void attributeAdded(HttpSessionBindingEvent event) {        log.debug("attributeAdded('" + event.getSession().getId() + "', '" +                event.getName() + "', '" + event.getValue() + "')");    }    /**     * Record the fact that a servlet context attribute was removed.     *     * @param event The session attribute event     */    public void attributeRemoved(HttpSessionBindingEvent event) {        log.debug("attributeRemoved('" + event.getSession().getId() + "', '" +                event.getName() + "', '" + event.getValue() + "')");    }    /**     * Record the fact that a servlet context attribute was replaced.     *     * @param event The session attribute event     */    public void attributeReplaced(HttpSessionBindingEvent event) {        log.debug("attributeReplaced('" + event.getSession().getId() + "', '" +                event.getName() + "', '" + event.getValue() + "')");    }    /**     * Record the fact that a session has been created.     *     * @param event The session event     */    public void sessionCreated(HttpSessionEvent event) {        log.debug("in PS sessionCreated('" + event.getSession().getId() + "')");        //sessionManager.sessionCreated(event);    }    /**     * Record the fact that a session has been destroyed.     *     * @param event The session event     */    public void sessionDestroyed(HttpSessionEvent event) {        //sessionManager.sessionDestroyed(event);        //loginService.sessionDestroyed(event.getSession());        log.debug("in PS sessionDestroyed('" + event.getSession().getId() + "')");        //HttpSession session = event.getSession();        //User user = (User) session.getAttribute(SportletProperties.PORTLET_USER);        //System.err.println("user : " + user.getUserID() + " expired!");        //PortletLayoutEngine engine = PortletLayoutEngine.getDefault();        //engine.removeUser(user);        //engine.logoutPortlets(event);    }    /**     * Record the fact that a session has been created.     *     * @param event The session event     */    public void sessionDidActivate(HttpSessionEvent event) {        log.debug("sessionDidActivate('" + event.getSession().getId() + "')");        //sessionManager.sessionCreated(event);    }    /**     * Record the fact that a session has been destroyed.     *     * @param event The session event     */    public void sessionWillPassivate(HttpSessionEvent event) {        //sessionManager.sessionDestroyed(event);        //loginService.sessionDestroyed(event.getSession());        log.debug("sessionWillPassivate('" + event.getSession().getId() + "')");        //HttpSession session = event.getSession();        //User user = (User) session.getAttribute(SportletProperties.USER);        //System.err.println("user : " + user.getUserID() + " expired!");        //PortletLayoutEngine engine = PortletLayoutEngine.getDefault();        //engine.removeUser(user);        //engine.logoutPortlets(event);    }}

⌨️ 快捷键说明

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