Spring
[SPRING] controller 부분 조금 설명
onnnzeoz
2023. 3. 31. 17:44
controller
@Controller
public class HomeController {
@Autowired BoardService service;
Logger logger = LoggerFactory.getLogger(this.getClass());
@RequestMapping(value = "/", method = RequestMethod.GET)
public String list(Model model) {
ArrayList<BoardDTO> list = service.list();
logger.info("service.list를 통해 가져온 값 : "+list);
model.addAttribute("list",list);
return "list";
}
@RequestMapping(value = "/write.go")
public String writego() {
return "writeForm";
}
@controller는 컨트롤러인거 명시하기 위해 사용한 어노테이션
@autowired는 객체화를 하지 않아도 service를 사용할 수 있게함
logger을 사용하기 위해 써줬고 어디서 로그가 찍혀는지 알 수 있게끔 this.getClass() 써줌
/ 요청이 들어오면 get 메서드를 통해 처리
list 메서드를 실행해주는데 model을 통해 값을 list.jsp로 보낼 것이기 때문에 Model model 을 인자값으로 넣어줌
user_name, subject, content 세가지의 값을 보낼 거니까 arraylist 사용하고 BoardDTO라는 클래스를 데이터 타입으로 사용해줌
service의 list 메서드를 실행해서 나온 값을 이 list에 담아주고
model의 addAttribute 메서드를 통해 list를 list라는 이름으로 보내줌
그리고 list.jsp 로 이동해줌
항목과 값이 있는 여러가지 데이터를 담을 때는
dto(bean)
아니면 hashmap
조회수를 올리려면 쿼리문이 필요함 -> update문 사용
request보다 한단계 위에있는 session에 담으면 뺄 수 있음
로그아웃을 하기전까지는 계속살아있는 녀석임

쿼리문이 있을 장소가 여러군데라면
위처럼 쓸 수도 있고 아래처럼 쓸 수도 있음

순서를 생각하면
컨트롤러 -> 서비스 ->다오 ->매퍼 ->
매핑ㅇ에서 실행해주는거 모든 요청 다해준다