[
https://issues.apache.org/jira/browse/FREEMARKER-1?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14953120#comment-14953120
]
ASF GitHub Bot commented on FREEMARKER-1:
-----------------------------------------
GitHub user woonsan opened a pull request:
https://github.com/apache/incubator-freemarker/pull/5
FREEMARKER-1 adding OverrideResponseContentType init param in
FreemarkerServlet
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/woonsan/incubator-freemarker
feature/FREEMARKER-1-option-overrideResponseContentType-on-2.3-gae
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-freemarker/pull/5.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #5
----
commit e89dbfce5f2d2274653062dfd6911a62c354c39b
Author: Woonsan Ko <[email protected]>
Date: 2015-10-12T13:31:16Z
FREEMARKER-1 adding OverrideResponseContentType init param in
FreemarketServlet
----
> Option to not to overwrite response ContentType in FreemarkerServlet
> --------------------------------------------------------------------
>
> Key: FREEMARKER-1
> URL: https://issues.apache.org/jira/browse/FREEMARKER-1
> Project: Apache Freemarker
> Issue Type: Improvement
> Reporter: Woonsan Ko
> Priority: Minor
>
> FreemarkerServlet doesn't have to set response ContentType by default.
> Especially when a controller in an MVC framework sets the response
> ContentType, it's better to not set the response ContentType again by the
> default ContentType setting in FreemarkerServlet according to servlet
> specification (SRV.5.2 and SRV.14.2.22.1):
> {quote}
> Servlet programmers are responsible for ensuring that the Content-Type header
> is appropriately set in the response object for the content the servlet is
> generating. The HTTP 1.1 specification does not require that this header be
> set in an HTTP response. Servlet containers must not set a default content
> type when the servlet programmer does not set the type.
> {quote}
> {quote}
> ServletResponse#getContentType() should "Returns the content type used for
> the MIME body sent in this response. The content type proper must have been
> specified using setContentType(String) before the response is committed. If
> no content type has been specified, this method returns null. If a content
> type has been specified and a character encoding has been explicitly or
> implicitly specified as described in getCharacterEncoding() , the charset
> parameter is included in the string returned. If no character encoding has
> been specified, the charset parameter is omitted.
> Returns: a String specifying the content type, for example, text/html;
> charset=UTF-8, or null
> Since: 2.4
> {quote}
> So, optionally, if #getContentType() returns null, then FreemarkerServlet can
> detect that the Content-Type was never set before.
> Actually, frameworks or containers don't have to set Content-Type if
> programmers don't. However, I think setting Content-Type header in the
> framework level (freemarker servlet in this case) to a reasonable default
> value seems fine.
> Daniels's remarks/suggestions on this in the old ML:
> {quote}
> The contentType matter... thanks for looking after these! So then,
> FreemarkerServlet surely should set the HttpServletResponse contentType when
> it's still null. OTOH there should be an option to only set it then (if it's
> not null), not always as it happens now. So then the "ContetType" init-param
> remains as is, and we add a new init-param, "OverrideResponseContentType"
> (better name?), whose default is true for backward compatibility, but this
> default can be changed to false by extending FreemarkerServlet. WDYT?
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)