인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

조용한 바닷가재님의 프로필 이미지
조용한 바닷가재

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

프론트 컨트롤러 도입 - v1

URI URL

작성

·

235

0

안녕하세요 강사님

        String requestURI = request.getRequestURI();
        StringBuffer requestURL = request.getRequestURL();

request에서 URI는 String으로 URL은 StringBuffer로 되어 있는데, 둘다 변하지 않는 값인데 URL은 Buffer로 되어 있는 이유가 있을까요??

requestURI = /front-controller/v1/11

requestURL = http://localhost:8080/front-controller/v1/11

답변 2

5

안녕하세요. 푸덕푸더덕님, 공식 서포터즈 David입니다.

.
영한님 답변대로 requestURL 수정을 쉽게 하기 위해서 String이 아닌 StringBuffer를 반환한다고 합니다.

StringBuffer 특성을 생각했을 때 string을 + 연산으로 문자열을 만들어내는 것보다 낫기 때문이지 않을까 정도로 생각했습니다.

그래도 뭔가 찝찝해서 stackoverflow에 질문 남겼는데 답변이 달렸네요. JavaEE Docs에 해당 내용이 나와있었네요ㅎㅎ

Because this method returns a StringBuffer, not a string, you can modify the URL easily, for example, to append query parameters.

https://javaee.github.io/javaee-spec/javadocs/javax/servlet/http/HttpServletRequest.html#getRequestURL--
.
감사합니다.

4

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 푸덕푸더덕님

아마 requestURL을 더 수정해서 사용하라고 이렇게 해둔 것 같은데, 정확한 의도는 저도 잘 모르겠습니다.

혹시 아시는 분 있으면 답변 부탁드립니다.

감사합니다.

조용한 바닷가재님의 프로필 이미지
조용한 바닷가재

작성한 질문수

질문하기