반응형
was 에서 웹 브라우저로 요청을 받게 되면 아래 그림처럼 동작을 한다.
1. 요청 받는 정보를 HttpServletRequest객체를 생성하여 저장
2. 웹 브라우저에게 리턴할 HttpServletResponse객체를 생성(빈 객체)
3. 생성된 HttpServletRequest(정보가 저장된)와 HttpServletResponse(비어 있는)를 Servlet에게 전달
그러면 여기서 나오는 HttpServletRequest, HttpServletResponse 에 대해서 설명을 하면 다음과 같다.
HttpServletRequest
-
Http프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용
-
Header정보, Parameter, Cookie, URI, URL 등의 정보를 읽어들이는 메소드를 가진 클래스
-
Body의 Stream을 읽어들이는 메소드를 가지고 있음
HttpServletResponse
-
Servlet은 HttpServletResponse객체에 Content Type, 응답코드, 응답 메시지등을 담아서 전송함
사용법은 다음과 같다.
먼저 HttpServletRequest 는 이전 포스팅인 AOP 에 관련된 코드에서 가져왔다.
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); |
이렇게 코드를 구현하고 request에서 url 이나 파라미터 정보들을 가져올수 있다.
다음으로 HttpServletResponse 는 CORS 를 사용할때의 코드를 예시로 보여주면
public class CORSFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "*"); response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8000"); chain.doFilter(req, res); } public void init(FilterConfig filterConfig) {} public void destroy() {} } |
다음 예시와 같이 springboot 에서는 사용이 가능하다.
반응형
'IT > Java' 카테고리의 다른 글
[Spring] BeanDefinition 이란? (36) | 2023.06.29 |
---|---|
[자바] 메모리 영역 Static, Stack, Heap (45) | 2023.06.28 |
spring-boot-maven-plugin (33) | 2023.06.22 |
@PostConstruct, @PreDestroy 어노테이션 (39) | 2023.06.20 |
JVM 내에 저장되어있는 데이터 위치 값 확인 (32) | 2023.06.18 |
댓글