YOO'sssss 2023. 8. 11. 10:02

// 퍼머링크 // 중괄호의 값으로 보드 넘버를 씀
@GetMapping("/boardOne2/{boardNo}/test") // http://localhost/boardOne2/11/test
public Integer boardOne2(@PathVariable(value="boardNo") int boardNo) { // 주소에서 받아서 씀
log.debug("/boardOne2 boardNo : "+boardNo);
return boardNo;
}


@RestController // 모든 반환타입을 rest로 리턴
@SessionAttributes(value="loginId") // 모델속성중 loginId라는 키는 생명주기가 세션과 동일




@RequestParam에 required 옵션을 주어 true일 경우는 필수, false일 경우는 필수가 아닌 것으로 설정 가능하다.
required = false일 때 요청 파라미터에 값이 없으면 null이 저장된다.
만약 Integer 대신 int를 사용하게 된다면 오류가 발생하게 되어 주의해야 한다.



 요청 파라미터 값이 없는 경우 defaultValue를 설정할 수 있다.
@ResponseBody
@RequestMapping("/request-param-default")
public String requestParamDefault(
  @RequestParam(required = true, defaultValue = "guest") String username,
  @RequestParam(required = false, defaultValue = "-1") int age) {
  log.info("username={}, age={}", username, age);
  return "ok";
}

이 경우에는 null 대신 -1이 저장되게 되어 int를 사용할 수 있다.

 


요청방식
1) html 문법 : 동기요청(새로운 페이지 요청 -> 클라이언트 페이지 교체)
- get : 주소창 입력, <a>태그, <form method="get">
- post : <form method="post">

2) javascript API(AJax) :  비동기요청(데이터(문자) 요청 -> 클라이언트 페이지는 변화가 없음) + 동기요청(페이지)
- get : 함수호출을 통해 요청
- post : 함수호출을 통해 요청

- 데이터(문자) 요청 : 문자를 데이터로 프로그램 언어로 해석이 편한 포맷 -> XML, JSON


-- Back-end에서 생성된 자바 자료구조(모델객체)
List l
l.add(new Member('a','1234');
l.add(new Member('b','1234');
l.add(new Member('c','1234');

-- XML방식
"<l>
<member>
<id>a</id>
<pw>1234</pw>
</member>
<member>
<id>a</id>
<pw>1234</pw>
</member>
<member>
<id>a</id>
<pw>1234</pw>
</member>
</l>"

l[0].id -> a, l[2].pw -> 1234

-- JSON방식
"[{'id':'a', 'pw':'1234'},{'id':'b', 'pw':'1234'},{'id':'b', 'pw':'1234'}]"