Re: DefaultServlet and default character encoding

2010-06-17 Thread Mark Thomas
On 17/06/2010 15:23, Felix Schumacher wrote:
> My Question now is, should I file a bug to enhance DefaultServlet? If so
> would it be legal to include the patch from that discussion?

That is covered by section 5 of the ALv2, so yes it would be legal. Make
sure you correctly attribute it. I'd add the link, not the actual patch.

Whilst this would be legal the ASF normally goes further and only
includes patches that were intentionally contributed. Even if we legally
could, we don't want to use someones code of they don't want us to. In
this case - having read the thread - I would say that it was definitely
a contribution so would have no problem applying the patch.

I would add that if the patch had been added to a new bugzilla item,
there is a good chance it would be in the code base already.

Mark



-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: DefaultServlet and default character encoding

2010-06-17 Thread Konstantin Kolinko
2010/6/17 Felix Schumacher :
> For the moment I have written a filter, which sets a default encoding, as
> soon as Response.setContentType(String type) is called and
> type.startsWith("text/"). That works for the moment, but I would prefer the
> solution described in above thread.

I know that setting charset in a mime-mapping works, e.g.:


htm
text/html;charset=iso-8859-1


html
text/html;charset=iso-8859-1


Note, that it would be better if the mime type set by a HTTP header
and the one provided by HTML tag match strictly (case sensitively).
Otherwise some browsers will start guessing.  IIRC, the HTML spec says
that the HTTP header takes precedence, but not all browsers follow it
strictly.

Also there is AddDefaultCharsetFilter in Tomcat 7. It is similar to
what you are doing, see its JavaDoc and source code.


> apache httpd thinks it would be better to append a
> charset to the response

I wonder, if there is a way to improve your Apache HTTPD configuration.

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: DefaultServlet and default character encoding

2010-06-18 Thread Felix Schumacher
On Thu, 17 Jun 2010 19:32:36 +0400, Konstantin Kolinko
 wrote:
> 2010/6/17 Felix Schumacher :
>> For the moment I have written a filter, which sets a default encoding,
as
>> soon as Response.setContentType(String type) is called and
>> type.startsWith("text/"). That works for the moment, but I would prefer
>> the
>> solution described in above thread.
> 
> I know that setting charset in a mime-mapping works, e.g.:
> 
> 
> htm
> text/html;charset=iso-8859-1
> 
> 
> html
> text/html;charset=iso-8859-1
> 
> 
> Note, that it would be better if the mime type set by a HTTP header
> and the one provided by HTML tag match strictly (case sensitively).
> Otherwise some browsers will start guessing.  IIRC, the HTML spec says
> that the HTTP header takes precedence, but not all browsers follow it
> strictly.
I will look into this one.
> 
> Also there is AddDefaultCharsetFilter in Tomcat 7. It is similar to
> what you are doing, see its JavaDoc and source code.
Yes, my filter looked like a twin, with the exception, that I called
super.setCharacterEncoding(defaultEncoding) instead of manipulating the
content-type directly (and of course that defaultEncoding is different to
super.getCharacterEncoding() which would yield iso-8859-1). 
I could extend that filter to my needs. Should I file a enhancement
request for that?
> 
> 
>> apache httpd thinks it would be better to append a
>> charset to the response
> 
> I wonder, if there is a way to improve your Apache HTTPD configuration.
I tried to let apache httpd now that in location /webapp the default
charset was different from iso-8859-1. But mod_jk ignored my pledges :(
Even so I think DefaultServlet should be able to set a charset if
configured to.

Bye
 Felix
> 
> Best regards,
> Konstantin Kolinko
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: DefaultServlet and default character encoding

2010-06-18 Thread Rainer Jung

On 18.06.2010 11:04, Felix Schumacher wrote:

On Thu, 17 Jun 2010 19:32:36 +0400, Konstantin Kolinko
  wrote:

2010/6/17 Felix Schumacher:

For the moment I have written a filter, which sets a default encoding,

as

soon as Response.setContentType(String type) is called and
type.startsWith("text/"). That works for the moment, but I would prefer
the
solution described in above thread.


I know that setting charset in a mime-mapping works, e.g.:

 
 htm
 text/html;charset=iso-8859-1
 
 
 html
 text/html;charset=iso-8859-1
 

Note, that it would be better if the mime type set by a HTTP header
and the one provided by HTML tag match strictly (case sensitively).
Otherwise some browsers will start guessing.  IIRC, the HTML spec says
that the HTTP header takes precedence, but not all browsers follow it
strictly.

I will look into this one.


Also there is AddDefaultCharsetFilter in Tomcat 7. It is similar to
what you are doing, see its JavaDoc and source code.

Yes, my filter looked like a twin, with the exception, that I called
super.setCharacterEncoding(defaultEncoding) instead of manipulating the
content-type directly (and of course that defaultEncoding is different to
super.getCharacterEncoding() which would yield iso-8859-1).
I could extend that filter to my needs. Should I file a enhancement
request for that?




apache httpd thinks it would be better to append a
charset to the response


I wonder, if there is a way to improve your Apache HTTPD configuration.

I tried to let apache httpd now that in location /webapp the default
charset was different from iso-8859-1. But mod_jk ignored my pledges :(
Even so I think DefaultServlet should be able to set a charset if
configured to.


How did you do that in Apache? Did you use

http://httpd.apache.org/docs/2.2/mod/core.html#adddefaultcharset

and if so, how exactly?

You can switch JkLogLevel on a system with low load to "debug", then 
mod_jk will log all response headers it received from Tomcat.


mod_jk itself takes the Content-Type header received from tomcat, 
extracts its full value and applies it to the Apache response via 
ap_set_content_type(). Apache later applies any configured default 
charset via ap_http_header_filter() in ap_http_header_filter(). At least 
that's what I expect to happen.


Regards,

Rainer

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: DefaultServlet and default character encoding

2010-06-18 Thread Felix Schumacher
On Fri, 18 Jun 2010 12:50:31 +0200, Rainer Jung 
wrote:
> On 18.06.2010 11:04, Felix Schumacher wrote:
>> On Thu, 17 Jun 2010 19:32:36 +0400, Konstantin Kolinko
>>   wrote:
>>> 2010/6/17 Felix Schumacher:
 For the moment I have written a filter, which sets a default
encoding,
>> as
 soon as Response.setContentType(String type) is called and
 type.startsWith("text/"). That works for the moment, but I would
prefer
 the
 solution described in above thread.
>>>
>>> I know that setting charset in a mime-mapping works, e.g.:
>>>
>>>  
>>>  htm
>>>  text/html;charset=iso-8859-1
>>>  
>>>  
>>>  html
>>>  text/html;charset=iso-8859-1
>>>  
>>>
>>> Note, that it would be better if the mime type set by a HTTP header
>>> and the one provided by HTML tag match strictly (case sensitively).
>>> Otherwise some browsers will start guessing.  IIRC, the HTML spec says
>>> that the HTTP header takes precedence, but not all browsers follow it
>>> strictly.
>> I will look into this one.
>>>
>>> Also there is AddDefaultCharsetFilter in Tomcat 7. It is similar to
>>> what you are doing, see its JavaDoc and source code.
>> Yes, my filter looked like a twin, with the exception, that I called
>> super.setCharacterEncoding(defaultEncoding) instead of manipulating the
>> content-type directly (and of course that defaultEncoding is different
to
>> super.getCharacterEncoding() which would yield iso-8859-1).
>> I could extend that filter to my needs. Should I file a enhancement
>> request for that?
>>>
>>>
 apache httpd thinks it would be better to append a
 charset to the response
>>>
>>> I wonder, if there is a way to improve your Apache HTTPD
configuration.
>> I tried to let apache httpd now that in location /webapp the default
>> charset was different from iso-8859-1. But mod_jk ignored my pledges :(
>> Even so I think DefaultServlet should be able to set a charset if
>> configured to.
> 
> How did you do that in Apache? Did you use
> 
> http://httpd.apache.org/docs/2.2/mod/core.html#adddefaultcharset
> 
> and if so, how exactly?
I placed the following into the config for the corresponding virtual host:

 
   AddDefaultCharset utf-8


Yesterday after restart of httpd I found no difference in behaviour...
Now the directive does work as expected.

So mod_jk/httpd can be configured to work around the issue.
Maybe I saw an old page from some sort of cache/proxy :(

Grüße
 Felix
> 
> You can switch JkLogLevel on a system with low load to "debug", then 
> mod_jk will log all response headers it received from Tomcat.
> 
> mod_jk itself takes the Content-Type header received from tomcat, 
> extracts its full value and applies it to the Apache response via 
> ap_set_content_type(). Apache later applies any configured default 
> charset via ap_http_header_filter() in ap_http_header_filter(). At least

> that's what I expect to happen.
> 
> Regards,
> 
> Rainer
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: DefaultServlet and default character encoding

2010-06-18 Thread Rainer Jung

On 18.06.2010 13:50, Felix Schumacher wrote:

On Fri, 18 Jun 2010 12:50:31 +0200, Rainer Jung
wrote:

On 18.06.2010 11:04, Felix Schumacher wrote:

On Thu, 17 Jun 2010 19:32:36 +0400, Konstantin Kolinko
   wrote:

2010/6/17 Felix Schumacher:

apache httpd thinks it would be better to append a
charset to the response


I wonder, if there is a way to improve your Apache HTTPD

configuration.

I tried to let apache httpd now that in location /webapp the default
charset was different from iso-8859-1. But mod_jk ignored my pledges :(
Even so I think DefaultServlet should be able to set a charset if
configured to.


How did you do that in Apache? Did you use

http://httpd.apache.org/docs/2.2/mod/core.html#adddefaultcharset

and if so, how exactly?

I placed the following into the config for the corresponding virtual host:


AddDefaultCharset utf-8


Yesterday after restart of httpd I found no difference in behaviour...
Now the directive does work as expected.

So mod_jk/httpd can be configured to work around the issue.
Maybe I saw an old page from some sort of cache/proxy :(


Good to know.

Rainer

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org