001    package com.khubla.pragmatach.plugin.jsp;
002    
003    import java.util.Map;
004    
005    import javax.servlet.http.HttpServlet;
006    import javax.servlet.http.HttpServletRequest;
007    import javax.servlet.http.HttpServletResponse;
008    
009    import com.khubla.pragmatach.framework.api.PragmatachException;
010    import com.khubla.pragmatach.framework.controller.impl.AbstractResponse;
011    
012    /**
013     * @author tome
014     */
015    public class JSPResponse extends AbstractResponse {
016       /**
017        * httpServlet
018        */
019       private final HttpServlet httpServlet;
020       /**
021        * request
022        */
023       private final HttpServletRequest httpServletRequest;
024    
025       public JSPResponse(Map<String, String> cacheHeaders, HttpServlet httpServlet, HttpServletRequest httpServletRequest) {
026          super(cacheHeaders);
027          this.httpServlet = httpServlet;
028          this.httpServletRequest = httpServletRequest;
029       }
030    
031       @Override
032       public String getContentType() throws PragmatachException {
033          return CONTENT_TYPE_HTML;
034       }
035    
036       @Override
037       public Map<String, String> getHeaders() throws PragmatachException {
038          return super.getCacheHeaders();
039       }
040    
041       @Override
042       public void render(HttpServletResponse httpServletResponse) throws PragmatachException {
043          try {
044             httpServlet.service(httpServletRequest, httpServletResponse);
045          } catch (final Exception e) {
046             throw new PragmatachException("Exception in render", e);
047          }
048       }
049    }