tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark <sendmailtom...@yahoo.com>
Subject Re: filter: How to set browser encoding?
Date Thu, 13 Oct 2005 16:38:04 GMT
Latest news!

I find out that after removing resp.setContentType("text/html"); from
the doPost() method everything starts working!!!

By reading servlet spec, I figure out that doFilter get called before
Servlets' doPost()
Serlet 2.3 spec about filtering:
QUOTE
When the container receives an incoming request, it takes the first
filter
instance in the list and calls its doFilter method, passing in the
ServletRequest
and ServletResponse, and a reference to the FilterChain object it
will use.
END QUOTE

It still behaves a bit bifferent in IE (user can change encoding to
something else) and Firefox (encoding will be forced to one that set
by Filter)

--- code --
 public void doPost( HttpServletRequest req, HttpServletResponse resp
)
          throws IOException, ServletException
{
  StringBuffer out;
 // doing something and out HTML output in out ( StringBuffer)
.....

  resp.setContentType("text/html"); // <=== do we need this line??

  PrintWriter pw = resp.getWriter();
  pw.println(out.toString());
}
--- end code ---

In all examples where HTML get generated by servlet I see this line:
resp.setContentType("text/html");

In my case Filter sets Encoding.
Can anybody confirm that resp.setContentType("text/html"); is not
nessesary


Thanks!
Mark.

--- "Frank W. Zammetti" <fzlists@omnytex.com> wrote:

> Mark, have a look here:
> 
>
http://javawebparts.sourceforge.net/javadocs/javawebparts/filter/CharacterEncodingFilter.html
> 
> Just added that to JWP last weekend :)  It essentially calls
> request.setCharacterEncoding() with whatever you configure.
> 
> (Oops... ignore the description of the encodingScheme parameter...
> just
> realized I have a cut-and-paste error in the javadoc.  D'oh!).
> 
> -- 
> Frank W. Zammetti
> Founder and Chief Software Architect
> Omnytex Technologies
> http://www.omnytex.com
> AIM: fzammetti
> Yahoo: fzammetti
> MSN: fzammetti@hotmail.com
> 
> On Wed, October 12, 2005 10:53 am, Mark said:
> > Hi everybody,
> > I've got a request from my client to force an encoding in the
> > browser, regardless what user have set.
> >
> > When I set encoding inside my filter to Windows-1257 in the HTML
> > source code I see only ?s:??? ????? ???.
> >
> > Is there any easy way to enforce browser to set proper encoding?
> >
> >
> > May be I need to setContent type after I obtain a writer in the
> > servlet?
> > Note, all outputs are generated by servlets:
> >
> > public void doPost( HttpServletRequest req, HttpServletResponse
> resp
> > )
> >       throws IOException, ServletException
> > {
> >   // do something
> >     resp.setContentType("text/html");
> >     resp.getWriter().println(output);
> > }
> >
> >
> > In MyFilter.doFilter() I do following:
> >
>
(HttpServletResponse)response).setContentType("text/html;charset=Windows-1257")
> >
> > I use 5.0.28 with Redhat 9.
> > Any input is welcome.
> >
> > Thanks!
> > Mark.
> >
> >
> >
> >
> > __________________________________
> > Yahoo! Mail - PC Magazine Editors' Choice 2005
> > http://mail.yahoo.com
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> tomcat-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail:
> tomcat-user-help@jakarta.apache.org
> >
> >
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> tomcat-user-help@jakarta.apache.org
> 
> 



	
		
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com

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


Mime
View raw message