request 값 세팅에 대해서
593
작성한 질문수 22
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
안녕하세요
[mvc1 - secction4 - Model추가 - v3의 19분 50초 쯤]
해당 부분에서 modelToRequesetAttribute 메서드의 반환타입이 void인게 이해가 되지 않습니다.
public void render(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
modelToRequestAttribute(model, request);
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);
}
private void modelToRequestAttribute(Map<String, Object> model, HttpServletRequest request) {
model.forEach((key, value)-> request.setAttribute(key, value));
}
해당 코드에서 모델이 가지고 있는 값들을 꺼내서 request객체에 넣어준 다음에 반환을 하지 않으면 값이 제대로 저장 안 되는 거 아닌가요??
혹시 request 객체는 따로 메모리 상에 올려져있는 static이라고 생각하고 요청마다 단 하나의 객체만 있으니까 어디서든 참조해서 반환값이 없어도 값을 수정하면 반영이 되니까 그대로 쓸 수 있는건가요??
render와 modelToReqeustAttribute의 내용 흐름이 잘 이해가 되지 않아서 질문 드립니다.
답변 2
0
안녕하세요. 카스님, 공식 서포터즈 David입니다.
객체를 메서드의 파라미터로 넘긴 뒤, 메서스 내에서 객체의 상태에 변경을 가하면 반환값과 무관하게 객체는 변경된 상태를 유지합니다.
자세한 내용은 다음 글을 참고해 주세요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요. 해당 부분에 대한 궁금증에 대해서 설명해 드릴게요.
modelToRequestAttribute 메서드는 void 타입이기 때문에 반환값이 없고, 전달 받은 model 객체의 값을 request 객체에 저장하는 역할을 합니다.
request 객체는 HTTP 요청이 들어올 때마다 서버에서 생성되는 객체입니다. 따라서 요청마다 객체가 생성되며, 값을 저장하는 메서드를 통해 값을 넣으면 해당 요청에만 값이 저장됩니다.
이런 이유로, modelToRequestAttribute 메서드에서 request 객체에 값을 저장하면 해당 요청에서만 값을 사용할 수 있고, 다른 요청에서는 사용할 수 없습니다.
따라서 해당 코드에서 modelToRequestAttribute 메서드는 model 객체에 저장된 모든 값을 request 객체에 복사하여 저장해두는 역할을 합니다. 그리고 render 메서드에서 request 객체를 이용하여 화면을 렌더링하는데 사용됩니다.
요약하자면, modelToRequestAttribute 메서드에서는 request 객체에 값을 저장하여 해당 요청에서 사용할 수 있는 형태로 만들어주는 역할을 합니다. 반환값이 void인 이유는 값을 저장하기 위한 것이기 때문입니다.
더 궁금한 점이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!
servlet과 container에 대한 질문입니다
0
25
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
64
1
jsp 의존성 수정 요청
0
78
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
143
1
save() 메서드 문의
0
67
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
101
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
97
1
RequestMapping을 이용한 핸들러, 어댑터
0
119
2
save 후 결과화면
0
89
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
178
1
수업 코드 제공 관련 문의
0
97
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
100
3
파일 오픈 시
0
70
1
스프링 배치 관련
0
78
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
95
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
79
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
75
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
139
1
html 변경하는 부분 적용 문제
0
103
1
한글 깨짐
0
76
2





