Package org.springframework.web.context.request

Examples of org.springframework.web.context.request.ServletRequestAttributes


    LocaleContext previousLocaleContext = LocaleContextHolder.getLocaleContext();
    LocaleContext localeContext = buildLocaleContext(request);

    RequestAttributes previousAttributes = RequestContextHolder.getRequestAttributes();
    ServletRequestAttributes requestAttributes = buildRequestAttributes(request, response, previousAttributes);

    WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request);
    asyncManager.registerCallableInterceptor(FrameworkServlet.class.getName(), new RequestBindingInterceptor());

    initContextHolders(request, localeContext, requestAttributes);

    try {
      doService(request, response);
    }
    catch (ServletException ex) {
      failureCause = ex;
      throw ex;
    }
    catch (IOException ex) {
      failureCause = ex;
      throw ex;
    }
    catch (Throwable ex) {
      failureCause = ex;
      throw new NestedServletException("Request processing failed", ex);
    }

    finally {
      resetContextHolders(request, previousLocaleContext, previousAttributes);
      if (requestAttributes != null) {
        requestAttributes.requestCompleted();
      }

      if (logger.isDebugEnabled()) {
        if (failureCause != null) {
          this.logger.debug("Could not complete request", failureCause);
View Full Code Here


   */
  protected ServletRequestAttributes buildRequestAttributes(
      HttpServletRequest request, HttpServletResponse response, RequestAttributes previousAttributes) {

    if (previousAttributes == null || previousAttributes instanceof ServletRequestAttributes) {
      return new ServletRequestAttributes(request, response);
    }
    else {
      return null// preserve the pre-bound RequestAttributes instance
    }
  }
View Full Code Here

  @Test
  public void testRequestScoping() throws Exception {
    MockHttpServletRequest oldRequest = new MockHttpServletRequest();
    MockHttpServletRequest newRequest = new MockHttpServletRequest();

    RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(oldRequest));

    ITestBean scoped = (ITestBean) this.context.getBean("requestScoped");
    assertTrue("Should be AOP proxy", AopUtils.isAopProxy(scoped));
    assertTrue("Should be target class proxy", scoped instanceof TestBean);

    ITestBean testBean = (ITestBean) this.context.getBean("testBean");
    assertTrue("Should be AOP proxy", AopUtils.isAopProxy(testBean));
    assertFalse("Regular bean should be JDK proxy", testBean instanceof TestBean);

    String rob = "Rob Harrop";
    String bram = "Bram Smeets";

    assertEquals(rob, scoped.getName());
    scoped.setName(bram);
    RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(newRequest));
    assertEquals(rob, scoped.getName());
    RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(oldRequest));
    assertEquals(bram, scoped.getName());

    assertTrue("Should have advisors", ((Advised) scoped).getAdvisors().length > 0);
  }
View Full Code Here

    MockHttpSession oldSession = new MockHttpSession();
    MockHttpSession newSession = new MockHttpSession();

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setSession(oldSession);
    RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));

    ITestBean scoped = (ITestBean) this.context.getBean("sessionScoped");
    assertTrue("Should be AOP proxy", AopUtils.isAopProxy(scoped));
    assertFalse("Should not be target class proxy", scoped instanceof TestBean);
View Full Code Here

    wac.setServletContext(new MockServletContext());
    wac.refresh();
    viewResolver = new ContentNegotiatingViewResolver();
    viewResolver.setApplicationContext(wac);
    request = new MockHttpServletRequest("GET", "/test");
    RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));
  }
View Full Code Here


  @Before
  public void setUp() {
    this.request = new MockHttpServletRequest();
    RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(this.request));
  }
View Full Code Here

  @Test
  public void fromCurrentRequest() {
    request.setRequestURI("/mvc-showcase/data/param");
    request.setQueryString("foo=123");
    RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(this.request));
    try {
      String result = ServletUriComponentsBuilder.fromCurrentRequest().build().toUriString();
      assertEquals("http://localhost/mvc-showcase/data/param?foo=123", result);
    }
    finally {
View Full Code Here

  }

  public View resolveViewName(String viewName, Locale locale) throws Exception {
    RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
    Assert.isInstanceOf(ServletRequestAttributes.class, attrs);
    ServletRequestAttributes servletAttrs = (ServletRequestAttributes) attrs;

    List<MediaType> requestedMediaTypes = getMediaTypes(servletAttrs.getRequest());

    List<View> candidateViews = new ArrayList<View>();
    for (ViewResolver viewResolver : this.viewResolvers) {
      View view = viewResolver.resolveViewName(viewName, locale);
      if (view != null) {
View Full Code Here

    LocaleContext previousLocaleContext = LocaleContextHolder.getLocaleContext();
    LocaleContextHolder.setLocaleContext(buildLocaleContext(request), this.threadContextInheritable);

    // Expose current RequestAttributes to current thread.
    RequestAttributes previousRequestAttributes = RequestContextHolder.getRequestAttributes();
    ServletRequestAttributes requestAttributes = null;
    if (previousRequestAttributes == null || previousRequestAttributes.getClass().equals(ServletRequestAttributes.class)) {
      requestAttributes = new ServletRequestAttributes(request);
      RequestContextHolder.setRequestAttributes(requestAttributes, this.threadContextInheritable);
    }

    if (logger.isTraceEnabled()) {
      logger.trace("Bound request context to thread: " + request);
    }

    try {
      doService(request, response);
    }
    catch (ServletException ex) {
      failureCause = ex;
      throw ex;
    }
    catch (IOException ex) {
      failureCause = ex;
      throw ex;
    }
    catch (Throwable ex) {
      failureCause = ex;
      throw new NestedServletException("Request processing failed", ex);
    }

    finally {
      // Clear request attributes and reset thread-bound context.
      LocaleContextHolder.setLocaleContext(previousLocaleContext, this.threadContextInheritable);
      if (requestAttributes != null) {
        RequestContextHolder.setRequestAttributes(previousRequestAttributes, this.threadContextInheritable);
        requestAttributes.requestCompleted();
      }
      if (logger.isTraceEnabled()) {
        logger.trace("Cleared thread-bound request context: " + request);
      }
View Full Code Here

  @Override
  protected void doFilterInternal(
      HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
      throws ServletException, IOException {

    ServletRequestAttributes attributes = new ServletRequestAttributes(request);
    LocaleContextHolder.setLocale(request.getLocale(), this.threadContextInheritable);
    RequestContextHolder.setRequestAttributes(attributes, this.threadContextInheritable);
    if (logger.isDebugEnabled()) {
      logger.debug("Bound request context to thread: " + request);
    }
    try {
      filterChain.doFilter(request, response);
    }
    finally {
      LocaleContextHolder.resetLocaleContext();
      RequestContextHolder.resetRequestAttributes();
      attributes.requestCompleted();
      if (logger.isDebugEnabled()) {
        logger.debug("Cleared thread-bound request context: " + request);
      }
    }
  }
View Full Code Here

TOP

Related Classes of org.springframework.web.context.request.ServletRequestAttributes

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.