BAEL-3335 example of reading request multiple times. removed spring boot and using spring-webmvc
This commit is contained in:
@@ -4,6 +4,7 @@ import java.io.IOException;
|
|||||||
|
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.annotation.WebFilter;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
@@ -14,9 +15,12 @@ import org.springframework.web.filter.OncePerRequestFilter;
|
|||||||
|
|
||||||
@Order(value = Ordered.HIGHEST_PRECEDENCE)
|
@Order(value = Ordered.HIGHEST_PRECEDENCE)
|
||||||
@Component
|
@Component
|
||||||
|
@WebFilter(filterName = "ContentCachingFilter", urlPatterns = "/*")
|
||||||
public class ContentCachingFilter extends OncePerRequestFilter {
|
public class ContentCachingFilter extends OncePerRequestFilter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
|
protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
|
||||||
|
System.out.println("IN ContentCachingFilter ");
|
||||||
CachedBodyHttpServletRequest cachedBodyHttpServletRequest = new CachedBodyHttpServletRequest(httpServletRequest);
|
CachedBodyHttpServletRequest cachedBodyHttpServletRequest = new CachedBodyHttpServletRequest(httpServletRequest);
|
||||||
filterChain.doFilter(cachedBodyHttpServletRequest, httpServletResponse);
|
filterChain.doFilter(cachedBodyHttpServletRequest, httpServletResponse);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +1,17 @@
|
|||||||
package org.baeldung.cachedrequest;
|
package org.baeldung.cachedrequest;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.web.servlet.ViewResolver;
|
|
||||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
||||||
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
|
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
import org.springframework.web.servlet.view.InternalResourceViewResolver;
|
/**
|
||||||
import org.springframework.web.servlet.view.JstlView;
|
* To initialize the WebApplication, Please see
|
||||||
|
* {@link org.baeldung.spring.config.MainWebAppInitializer}
|
||||||
|
*/
|
||||||
|
|
||||||
@EnableWebMvc
|
@EnableWebMvc
|
||||||
@Configuration
|
@Configuration
|
||||||
|
@ComponentScan(basePackages = "org.baeldung.cachedrequest")
|
||||||
public class HttpRequestDemoConfig implements WebMvcConfigurer {
|
public class HttpRequestDemoConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
public HttpRequestDemoConfig() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
// API
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addViewControllers(final ViewControllerRegistry registry) {
|
|
||||||
registry.addViewController("/sample.html");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public ViewResolver viewResolver() {
|
|
||||||
final InternalResourceViewResolver bean = new InternalResourceViewResolver();
|
|
||||||
|
|
||||||
bean.setViewClass(JstlView.class);
|
|
||||||
bean.setPrefix("/WEB-INF/view/");
|
|
||||||
bean.setSuffix(".jsp");
|
|
||||||
|
|
||||||
return bean;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,9 @@ public class Person {
|
|||||||
|
|
||||||
private int age;
|
private int age;
|
||||||
|
|
||||||
|
public Person() {
|
||||||
|
}
|
||||||
|
|
||||||
public Person(String firstName, String lastName, int age) {
|
public Person(String firstName, String lastName, int age) {
|
||||||
this.firstName = firstName;
|
this.firstName = firstName;
|
||||||
this.lastName = lastName;
|
this.lastName = lastName;
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
package org.baeldung.cachedrequest;
|
package org.baeldung.cachedrequest;
|
||||||
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.annotation.WebFilter;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
@@ -16,12 +18,14 @@ import org.springframework.web.filter.OncePerRequestFilter;
|
|||||||
|
|
||||||
@Order(Ordered.LOWEST_PRECEDENCE)
|
@Order(Ordered.LOWEST_PRECEDENCE)
|
||||||
@Component
|
@Component
|
||||||
|
@WebFilter(filterName = "printRequestContentFilter", urlPatterns = "/*")
|
||||||
public class PrintRequestContentFilter extends OncePerRequestFilter {
|
public class PrintRequestContentFilter extends OncePerRequestFilter {
|
||||||
@Override
|
@Override
|
||||||
protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
|
protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
|
||||||
|
System.out.println("IN PrintRequestContentFilter ");
|
||||||
InputStream inputStream = httpServletRequest.getInputStream();
|
InputStream inputStream = httpServletRequest.getInputStream();
|
||||||
byte[] body = StreamUtils.copyToByteArray(inputStream);
|
byte[] body = StreamUtils.copyToByteArray(inputStream);
|
||||||
System.out.println("In PrintRequestContentFilter." + " Request body is: " + new String(body));
|
System.out.println("In PrintRequestContentFilter. Request body is: " + new String(body));
|
||||||
filterChain.doFilter(httpServletRequest, httpServletResponse);
|
filterChain.doFilter(httpServletRequest, httpServletResponse);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user