tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "hacking bear" <hackingb...@hotmail.com>
Subject Re: Setting locale encoding in Filter
Date Thu, 10 Apr 2003 07:27:55 GMT
That's what I believe should happen but as my experiment shows the opposite 
happens. If I set my locale/encoding anywhere before next.doFilter(), none 
of the pages display properly, but if I put it after next.doFilter() then 
only a small number of pages sometimes (1 page display one particular data 
record which has nothing special than other records) showing garbage and 
setting encoding in that JSP page fixes the problem, as I described below.

BTW I found setting the request.setCharEncoding() before next.doFilter() 
does do what it should be doing.

>From: "Bill Barker" <wbarker@wilshire.com>
>Reply-To: "Tomcat Users List" <tomcat-user@jakarta.apache.org>
>To: tomcat-user@jakarta.apache.org
>Subject: Re: Setting locale encoding in Filter
>Date: Thu, 10 Apr 2003 00:23:45 -0700
>
>You're setLocale et. al. calls should come before 'next.doFilter'.
>Otherwise (esp. with JSP pages) the response may be committed before 
>control
>is returned to your Filter.  In this case, you are now longer allowed to
>change the settings (and Tomcat should throw an IllegalStateExecption).
>
>"hacking bear" <hackingbear@hotmail.com> wrote in message
>news:F49dyvqSgnpvI4NNIiY00006bde@hotmail.com...
> > Hello,
> >
> > My app needs to handle multiple locale/encoding and since the user 
>chooses
> > locale at login I try to just set the locale encoding in a servlet 
>filter
>so
> > that I don't have to do that in every page or servlet:
> >
> > void doFilter(request, response, FilterChain next) {
> >      if (next != null) {
> >          next.doFilter(request, response);
> >      }
> >      response.setLocale(locale);
> >      response.setContentType("text/html; charset=" + encoding);
> >      response.addHeader("Cache-Control", "no-cache");
> >      request.setCharacterEncoding(encoding);
> > }
> >
> > 1. This almost works except some JSP pages sometimes (but not always)
> > displaying '?' garbage character. But if I set the response's
> > locale/encoding again at the beginning of the JSP page, the problem goes
> > away.
> >
> > 2. If I move the set locale/encoding codes before the next.doFilter(),
>then
> > all pages display garbage only.
> >
> > Is this the right way? What do I do wrong?
> >
> > Thanks.
> > -HB
> >
> >
> > _________________________________________________________________
> > The new MSN 8: smart spam protection and 2 months FREE*
> > http://join.msn.com/?page=features/junkmail
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>


_________________________________________________________________
STOP MORE SPAM with the new MSN 8 and get 2 months FREE*  
http://join.msn.com/?page=features/junkmail


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message