001
014
015 package com.liferay.portal.kernel.servlet;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.portlet.LiferayPortletSession;
020 import com.liferay.portal.kernel.portlet.PortletFilterUtil;
021 import com.liferay.portal.kernel.util.JavaConstants;
022 import com.liferay.portal.kernel.util.WebKeys;
023
024 import java.io.IOException;
025
026 import javax.portlet.PortletException;
027 import javax.portlet.PortletRequest;
028 import javax.portlet.PortletResponse;
029 import javax.portlet.filter.FilterChain;
030
031 import javax.servlet.ServletException;
032 import javax.servlet.http.HttpServlet;
033 import javax.servlet.http.HttpServletRequest;
034 import javax.servlet.http.HttpServletResponse;
035 import javax.servlet.http.HttpSession;
036
037
040 public class PortletServlet extends HttpServlet {
041
042 public static final String PORTLET_APP =
043 "com.liferay.portal.model.PortletApp";
044
045 public static final String PORTLET_CLASS_LOADER = "PORTLET_CLASS_LOADER";
046
047 public static final String PORTLET_SERVLET_CONFIG =
048 "com.liferay.portal.kernel.servlet.PortletServletConfig";
049
050 public static final String PORTLET_SERVLET_FILTER_CHAIN =
051 "com.liferay.portal.kernel.servlet.PortletServletFilterChain";
052
053 public static final String PORTLET_SERVLET_REQUEST =
054 "com.liferay.portal.kernel.servlet.PortletServletRequest";
055
056 public static final String PORTLET_SERVLET_RESPONSE =
057 "com.liferay.portal.kernel.servlet.PortletServletResponse";
058
059 public void service(
060 HttpServletRequest request, HttpServletResponse response)
061 throws IOException, ServletException {
062
063 String portletId = (String)request.getAttribute(WebKeys.PORTLET_ID);
064
065 PortletRequest portletRequest = (PortletRequest)request.getAttribute(
066 JavaConstants.JAVAX_PORTLET_REQUEST);
067
068 PortletResponse portletResponse = (PortletResponse)request.getAttribute(
069 JavaConstants.JAVAX_PORTLET_RESPONSE);
070
071 String lifecycle = (String)request.getAttribute(
072 PortletRequest.LIFECYCLE_PHASE);
073
074 FilterChain filterChain = (FilterChain)request.getAttribute(
075 PORTLET_SERVLET_FILTER_CHAIN);
076
077 LiferayPortletSession portletSession =
078 (LiferayPortletSession)portletRequest.getPortletSession();
079
080 portletRequest.setAttribute(WebKeys.PORTLET_ID, portletId);
081 portletRequest.setAttribute(PORTLET_SERVLET_CONFIG, getServletConfig());
082 portletRequest.setAttribute(PORTLET_SERVLET_REQUEST, request);
083 portletRequest.setAttribute(PORTLET_SERVLET_RESPONSE, response);
084
085 HttpSession session = request.getSession();
086
087 PortletSessionTracker.add(session);
088
089 portletSession.setHttpSession(session);
090
091 try {
092 PortletFilterUtil.doFilter(
093 portletRequest, portletResponse, lifecycle, filterChain);
094 }
095 catch (PortletException pe) {
096 _log.error(pe, pe);
097
098 throw new ServletException(pe);
099 }
100 }
101
102 private static Log _log = LogFactoryUtil.getLog(PortletServlet.class);
103
104 }