inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Spring MVC Phần 1 - Công nghệ cốt lõi phát triển web backend

Xây dựng ứng dụng web quản lý thành viên bằng Servlet

폼에서 저장 페이지로 넘어갈 때의 POST에 대한 궁금증

Đã giải quyết

500

king92435635

40 câu hỏi đã được viết

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]

HTTP GET 방식 기능 : 조회

HTTP POST 방식 기능 : 처리 , 저장 , 등록 , ...

와 같이 알고 있습니다. 

 

제목 없음.png

즉 사진에서 노란색 밑줄 친 코드는 현재 폼에서 입력된 데이터를 /servlet/members/save 경로에서 "처리"할 것을 요구하는 코드로 이해했습니다.

/servlet/members/save 경로에 해당되는 MemberSaveServlet 클래스에선 폼에서 발생한 데이터를 "저장"시키는 역할을 하고요. 

 

before.png

그런데 다음과 같이 실제 폼에서 username과 age를 입력한 후 submit을 누르면 

 

after.png

다음과 같이 /servlet/members/save페이지가 "조회"되면서 데이터가 "저장"되는 두 가지 작업이 동시에 일어나는 것을 확인할 수 있었습니다. 

 

 

저는 POST 방식은 데이터 "조회"가 아닌 데이터 "처리"로 알고 있어서 폼에서 데이터를 입력하면 페이지에는 아무런 변화가 없고 그냥 데이터가 "저장"만 되는 것으로 알고 있었습니다

그래서 /servlet/members/save 페이지를 "조회"해서 데이터가 잘 "저장"됐는지 확인하려면 GET 을 통하여 해당 페이지로 넘어가게끔 추가로 로직을 구성해야되는 것으로 생각하였습니다.

[핵심 질문]

이에 따라 앞으로 POST 방식을 쓰는 경우 페이지가 "조회"되면서 데이터 "처리"가 동시에 순차적으로 일어난다고 봐도 될지 궁금합니다 ! 

spring mvc http post get servlet jsp

Câu trả lời 2

2

yh

안녕하세요. 경민님

POST를 사용해도 조회, 저장, 삭제를 포함한 모든 것을 할 수 있고, GET을 사용해도 조회, 저장, 삭제를 포함한 모든 것을 처리할 수 있습니다.

물론 POST의 경우 데이터를 저장하는데 사용하는 것이 좋습니다.

참고로 POST의 경우 핵심은 저장이지만, POST를 통한 저장 결과를 보여주는 것은 괜찮습니다.

관련해서 뒤에서 PRG라는 부분을 설명하는데요. 여기서 더 나은 방안을 설명해드립니다 🙂

감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 경민님의 질문을 잘 읽었습니다.

경민님께서 언급하신 것처럼, 일반적인 웹 개발에서 HTTP 메소드는 특정 목적을 위해 사용됩니다. GET 메소드는 주로 데이터를 “조회”할 때 사용되며, POST 메소드는 데이터를 서버에 “전송”하거나 “처리”할 때 사용됩니다. 예를 들어, 사용자가 웹 양식(form)을 작성하고 이를 서버로 전송할 때 POST 메소드를 사용합니다.

제출된 양식의 데이터는 서버에서 받아 “처리”되고, 이 처리는 데이터를 “저장”하는 것을 포함할 수 있습니다. 하지만, POST 요청으로 데이터가 처리된 뒤에 사용자가 새로운 페이지를 보게 되는 것은 서버의 응답과 관련이 있습니다. 일반적으로 서버는 POST 요청 처리 후 사용자의 브라우저에 어떤 페이지를 보여줄 것인지 결정합니다.

양식 제출 후에 보통 “리다이렉트”를 사용하여 사용자를 다른 페이지로 보내는 것이 일반적인 패턴입니다. 이는 POST/Redirect/GET 패턴이라고 불리는데, 이 방법을 사용하면 양식을 제출한 후 사용자가 브라우저의 새로고침 버튼을 누를 때 중복 제출을 방지할 수 있습니다.

따라서, POST 요청 후 페이지가 “조회”되는 것은 서버가 응답으로 해당 페이지를 보내주기 때문입니다. 이 경우, 서버는 페이지의 “조회”와 데이터의 “처리”를 순차적으로 수행한 것입니다. 데이터 처리 후 항상 똑같은 페이지를 보여주는 것은 아니며, 개발자가 어떤 응답을 할지 선택할 수 있습니다.

POST 요청 후에 응답으로 보내주는 페이지는 해당 데이터가 잘 “저장”되었음을 알려주는 페이지일 수도 있고, 다른 정보를 보여주는 페이지일 수도 있습니다. 즉, POST 요청을 할 때 서버가 어떤 응답을 할지는 개발자가 결정하므로, 매번 동일한 페이지를 조회한다고 보기는 어렵습니다.

이러한 내용에 대한 지식공유자분들의 답변이 필요한 경우 아래 링크를 참고하시기 바랍니다.
- HTTP 메소드 GET, POST 관련 질문
- POST Form에 대해 질문드립니다.
- 회원등록 페이지(servlet/members/new-form)에서 회원등록 후 뒤로가기시…

위의 링크들은 POST 요청, 데이터 처리, 폼 제출, 그리고 이에 대한 서버의 응답 처리에 대한 상세한 설명을 제공합니다. 해당 정보가 경민님의 궁금증을 해결하는 데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

servlet과 container에 대한 질문입니다

0

24

1

api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?

0

63

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

77

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