01 package com.bea.medrec.filters;
02
03 import java.io.IOException;
04 import javax.servlet.Filter;
05 import javax.servlet.FilterChain;
06 import javax.servlet.FilterConfig;
07 import javax.servlet.ServletException;
08 import javax.servlet.ServletRequest;
09 import javax.servlet.ServletResponse;
10
11 /**
12 * <p>Filter to handle request's character encoding.</p>
13 *
14 * @author Copyright (c) 2006 by BEA Systems All Rights Reserved.
15 */
16 public class RequestEncodingFilter implements Filter{
17
18 private String encoding;
19
20 public void init(FilterConfig config) throws ServletException {
21 encoding = "UTF-8";
22 String enc = config.getInitParameter("encoding");
23 if(enc !=null && enc.length() > 0){
24 encoding = enc;
25 }
26 }
27
28 public void destroy() {}
29
30 /**
31 * <p>Dispatching specified request changing its parameter's character
32 * encoding. MedRec applications generate pages in utf-8. Then request
33 * parameter of normal PC browser is in utf-8. That's why this filter
34 * handles it in utf-8. If some user agent works on different encoding,
35 * character encoding can be specified in web.xml, filter element.
36 * </p>
37 */
38 public void doFilter(ServletRequest request,
39 ServletResponse response,
40 FilterChain chain)
41 throws IOException, ServletException {
42
43 request.setCharacterEncoding(encoding);
44 chain.doFilter(request, response);
45 }
46 }
|