View Javadoc

1   package at.meikel.dmrl.webapp.rest;
2   
3   import java.io.IOException;
4   
5   import javax.servlet.Filter;
6   import javax.servlet.FilterChain;
7   import javax.servlet.FilterConfig;
8   import javax.servlet.ServletException;
9   import javax.servlet.ServletOutputStream;
10  import javax.servlet.ServletRequest;
11  import javax.servlet.ServletResponse;
12  import javax.servlet.http.HttpServletRequest;
13  
14  import org.apache.log4j.Logger;
15  
16  /**
17   * Servlet Filter implementation class SampleFilter
18   */
19  public class SampleFilter implements Filter {
20  
21  	private static final Logger LOGGER = Logger.getLogger(SampleFilter.class);
22  
23  	/**
24  	 * Default constructor.
25  	 */
26  	public SampleFilter() {
27  	}
28  
29  	/**
30  	 * @see Filter#destroy()
31  	 */
32  	public void destroy() {
33  	}
34  
35  	/**
36  	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
37  	 */
38  	public void doFilter(ServletRequest request, ServletResponse response,
39  			FilterChain chain) throws IOException, ServletException {
40  		// String url = request.getScheme() + request.getServerName()
41  		// + request.getServerPort();
42  		String reqUrl = "unknown";
43  		try {
44  			reqUrl = ((HttpServletRequest) request).getRequestURL().toString();
45  			String queryString = ((HttpServletRequest) request)
46  					.getQueryString();
47  			if (queryString != null) {
48  				reqUrl += "?" + queryString;
49  			}
50  		} catch (Exception e) {
51  			// ignore
52  		}
53  
54  		LOGGER.info("Executing servlet for URL " + reqUrl + " at "
55  				+ new java.util.Date());
56  		LOGGER.info("    request-content-type=" + request.getContentType());
57  		String callback = request.getParameter("callback");
58  		LOGGER.info("    callback=" + callback);
59  		ServletOutputStream out = response.getOutputStream();
60  		if (callback != null) {
61  			out.write((callback + "(").getBytes());
62  		}
63  		chain.doFilter(request, response);
64  		if (callback != null) {
65  			out.write(")".getBytes());
66  		}
67  		LOGGER.info("    response-content-type=" + response.getContentType());
68  		out.close();
69  	}
70  
71  	/**
72  	 * @see Filter#init(FilterConfig)
73  	 */
74  	public void init(FilterConfig fConfig) throws ServletException {
75  	}
76  
77  }