01: /*
02: * Copyright 2005 jWic Group (http://www.jwic.de)
03: *
04: * de.jwic.spring.RequestInterceptor
05: * Created on 29.08.2005
06: *
07: */
08:
09: package de.jwic.spring;
10:
11: import javax.servlet.http.HttpServletRequest;
12: import javax.servlet.http.HttpServletResponse;
13:
14: import org.springframework.web.servlet.HandlerInterceptor;
15: import org.springframework.web.servlet.ModelAndView;
16:
17: /**
18: * Makes the HttpServletRequest available for classes using a static TheadLocal.
19: * @author Florian Lippisch
20: */
21: public class RequestInterceptor implements HandlerInterceptor {
22:
23: private static ThreadLocal requestStore = new ThreadLocal();
24:
25: /**
26: * Returns the HttpServletRequest for the current thread.
27: * @return
28: * @throws IllegalStateException
29: */
30: public static HttpServletRequest getRequest()
31: throws IllegalStateException {
32: HttpServletRequest request = (HttpServletRequest) requestStore
33: .get();
34: if (request == null) {
35: throw new IllegalStateException(
36: "HttpServletRequest has not been stored!");
37: }
38: return request;
39: }
40:
41: /*
42: * (non-Javadoc)
43: * @see org.springframework.web.servlet.HandlerInterceptor#preHandle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object)
44: */
45: public boolean preHandle(HttpServletRequest request,
46: HttpServletResponse response, Object handler)
47: throws Exception {
48:
49: requestStore.set(request);
50: return true; // process next cinterceptors in the chain.
51:
52: }
53:
54: /*
55: * (non-Javadoc)
56: * @see org.springframework.web.servlet.HandlerInterceptor#afterCompletion(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, java.lang.Exception)
57: */
58: public void afterCompletion(HttpServletRequest request,
59: HttpServletResponse response, Object handler,
60: Exception exception) throws Exception {
61:
62: requestStore.set(null); // clear
63:
64: }
65:
66: /*
67: * (non-Javadoc)
68: * @see org.springframework.web.servlet.HandlerInterceptor#postHandle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, org.springframework.web.servlet.ModelAndView)
69: */
70: public void postHandle(HttpServletRequest arg0,
71: HttpServletResponse arg1, Object arg2, ModelAndView arg3)
72: throws Exception {
73: // nothing to do here
74:
75: }
76:
77: }
|