기록양식 (TIL)
1. 사용 개념
2. 의문점 or 문제
3. 시도해 본 것들(+응용) or 삽질
4. 해결
5. 알게 된 점(회고)




Front controller를 쓰기전에 survlet의 작동방식


![]() | ![]() |
|---|
왼:
Servlet오:DispatcherServletController
개념만 봐서는 무슨 말인지 이해가 안간다. 저거를 활용해서 뭐를 도대체 한다는 것인지

- 클라이언트가 서버에 요청을 한다.
- 요청한 데이터는
DispatcherServlet을 거쳐Handler Mapping으로 넘어간다/api/주소를getmappingpostmapping등의 명령어를 컨트롤러에서 import 시킨다.- 요청받은 데이터를
Controller에서 중간다리? 역할을 한다.
3-1. 데이터와 연결된entity / class, 사용자 요청인dto / request,response를 종합하여 데이터와, view정보를DispatcherServlet에 전송 >view resolverview를 통해 서버에서 클라이언트로 response 보낸다.
📟 예제
1. @Controller
public class HelloController {
2. @GetMapping("/api/hello")
3. @ResponseBody
public String hello() {
return "Hello World!";
}
}
@Controller>컨트롤러 부여@GetMapping("/api/hello")클라이언트로부터 받은/api/hello를Mapping방식으로 가져옴@ResponseBody컨트롤러가 반환하는 Java의 객체를 Json형태로 반환
@PutMapping("/memos/{id}")
public Long updateMemo(@PathVariable Long id, @RequestBody MemoRequestDto requestDto) {
// 해당 메모가 DB에 존재하는지 확인
Memo memo = findById(id);
- RequestBody : 클라이언트 요청의 본문(Body)
JSON형태를 >JAVA객체로 변환- ResponseBody : 컨트롤러가 반환하는
Java객체>JSON형태로 다시 반환- PathVariable :
mapping에서 가져오는url일부를 메서드의 매개변수로 받기위해 사용 >/memos/P{id}>(@PathVariable Long id~,로 받음Memo memo> 기존entity객체에 기본생성자 외에, id를 매개변수로 받는 생성자를 새로 생성해서 id데이터도 받을 수 있게 작성결국은 controller내에서
entity<>dto의 데이터를 주고받고 조정


.
.
.