Closed binchoo closed 2 years ago
@RequestMapping(value = "/{id}", params = "form", method=RequestMethod.POST)
@RequestMapping(method=RequestMethod.POST)
public String create(@Valid Singer singer, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
...
}
...
}
@RequestMapping(method=RequestMethod.POST)
public String create(@Valid Singer singer, BindingResult bindingResult, Locale loc) {
...
}
@RequestMapping(method=RequestMethod.POST)
public String create(@Valid Singer singer, BindingResult bindingResult, Locale loc, RedirectAttributes ra) {
...
RedirectView rv = new RedirectView("/singers/");
ra.addFlashAttribute("message", new Message("success"));
return rv;
}
HTTP 요청 바디에 업로드 된 파일 바이너리가 담겨 있는 경우, 이것을 MVC가 Part
객체로 포장하여 컨트롤러에게 주입 해 준다. Part
객체에서 InputStream
을 획득할 수 있으므로 여기서 다시 바이너리를 획득하여 DB의 BLOB에 저장할 수 있다.
@RequestMapping(method=RequestMethod.POST)
public String create(@Valid Singer singer, BindingResult bindingResult, Locale loc, RedirectAttributes ra, Part file) {
...
byte[] fileContent = null;
try {
InputStream inputStream = file.getInputStream();
fileContent = IOUtils.toByteArray(inputStream);
} catch {
...
}
singer.setPhoto(fileContent);
singerService.save(singer);
...
}
인증이란, 유저의 신분을 확인하는 것이다. 자신이 A라고 주장하는 자가 정말로 A인지 확인한다.
현실 세계의 인증 → 주민등록증 사진과 당사자 얼굴을 대조하는 과정 웹에서의 인증은 → 유저에게 아이디와 비밀번호 쌍을 요구한다. 아이디는 ''자신이 A라고 주장''하는 것과 같으며, 비밀번호는 '정말로 자신이 A임을 증명'하는 것이다.
인가란, 어떤 사람이 특정 행동을 해도 된다고 인정해 준 것이다. 인가 절차는 보통 이렇다.
경찰이 과속 위반 차량을 세우고, 운전자에게 운전 면혀증을 요구했다. 경찰은 운전자가 면허증의 사람과 동일함을 확인했다. (인증 절차) 경찰은 운전 면허의 진위 여부, 만료일 등을 확인했다. 면허증을 살펴보니 이 사람은 운전할 권한이 있는 사람이 맞았다. (인가 절차)
주제
16장 스프링 웹 애플리케이션을 읽고 중요✨ 하다고 생각하는 키워드와 선택한 이유에 대해서 코멘트로 달아주세요.
93