Chapter.4 데이터 전송

Garam·2023년 5월 25일
1

Spring

목록 보기
4/14
post-thumbnail
post-custom-banner

📌 전시간 내용 복습

📖 Controller

컨트롤러는 두가지가 있다.
Front ControllerPOJO (프론트 컨트롤러가 해야할 일을 대신해주는)

POJO 클래스에서는 @Controller을 붙여야 POJO로 인식하고 url을 통해서 요청이 들어오게 하기 위해서는@RequestMapping를 달아줘야한다.

RequestMapping아래있는 메소드는 요청이 들어왔을때 처리하는 메소드가 된다.
HandlerMapping class@RequestMapping 읽어서 처리하게 된다.

📖 jsp를 views 폴더 아래 만드는 이유

jsp를 만들때는 webContent폴더가아닌 복잡하게 아래 내려가서 views안에다가 만들어야 한다.
Spring에서는 왜 복잡하게 만들까?

기존에는 jsp를 만들면 WebContent에다가 만들고 jsp부터 바로 시작했다.

위에 보이는 방식으로 말이다.

그렇게 되면 브라우저에서 Controller를 요청하지 않고 Viewjsp를 바로 실행하게 되는 식이 된다.
위처럼 하게 되면 FrontController를 거치지 않고 바로 실행하는 결과가 된다.
그러므로 Spring의 흐름을 지키기위해서 무조건 Frontroller를 거치게 만들어 줘야한다.
바로 View를 요청하지 못하게 하는 것이다.

WEB-INF 아래에 만들게 된다면 브라우저에서 바로 View로 가는 것을 막아줄 수 가 있다.
WEB-INF은 보안 디렉토리 이기때문에 브라우저에 나오면 안된다. (접근자체가 불가능하다.)
그렇게되면 컨트롤러를 무조건 거쳐야 한다.

결론은 WEB-INF에다가 jsp를 만드는 순간 부조건 FrontController를 거쳐 POJO를 통해 jsp가 실행되게 된다는 말이다.


📌 게시판 꾸미기

📖 부트스트랩 사용법

https://www.w3schools.com/ <- 링크로 접속한다

htmlCSS를 좀더 이쁘고 쉽게 제공하는 템플릿 같은 사이트는 아래로 접속하면 된다.

https://www.codecademy.com/learn/learn-bootstrap <- Learn Bootstrap

BS Panels 선택해서 Panel Heading 디자인을 선택한다.

Try it Yourself 로 들어가서 테스트를 해볼 수 있고 소스코드를 가져 올 수 있다.

이렇게 손쉽게 이쁜 디자인으로 적용완료 할 수 있다.

📖 게시판 처럼 꾸미기

테이블 테그 생성 후 classtable 넣는다.

추가로 classtable-hovertable-bordered를 주면 마우스 올렸을때와 칸 디자인을 입힐 수 있다.
자세한 사항은 부트스트랩 홈페이지에서 확인이 가능하다.

📖 게시판을 위한 DB연결 패키지와 클래스 만들기

kr.smhrd.dao 패키지와 게시판 정보를 가질 객체 BoardVO 클래스를 만들어준다.

BoardVO는 다음과 같이 작성을 한다.

안에 멤버변수에 접근하고 싶지만 private로 막혀 있다 그래서 우리는 getter, setter 메소드를 만드는데
getter, setter을 일일이 만들기가 너무 귀찮고 코드가 길어진다.

그래서 우리는 gettersetter을 자동으로 만들어주는 라이브러리를 사용할 것이다.

그렇게 해주는 라이브러리는 바로 lombok api이다.


📌 데이터 전송

📖 VO를 생성해서 jsp로 보내기

이렇게 POJO에서 VO를 만들어서 List에 담아줬다 (List 타입은 확장성을 위해) 그럼 이 List를 어떻게 전달할까?

그래서 우리는 Request 객체 안에 데이터를 넣어서 포워딩 방식으로 데이터를 전달 할 것이다.

그럼 request객체는 어떻게 만들어야 할까?

지금처럼 메소드 옆에 매개변수를 작성하면 메소드 호출시 request객체가 매소드 매개변수로 넘어온다.

그럼 아래에서 request객체 안에 데이터를 저장할 수 있다.

📖 jsp에서 데이터 꺼내기

jsp에서 먼저 넣어놨던 내장객체인 request 객체 안에 있는 데이터를 먼저 꺼낸다.

그다음 꺼내고 싶은데서 꺼내서 사용 할 수 있다.
(물론 EL & JSTL을 배웠다면 더 편하게 꺼낼 수 있다.)

추가 이렇게도 가능하다.

📖 Spring에서 객체 바인딩을 하는 방법

Spring에서는 데이터를 전달할때 Spring 전용 저장공간인 Model이라는 Class가 존재한다.
거기에다가 저장해서 전달한다.

그런데 가장 중요한 점은 Controller에서 jsp로 데이터를 보낼때는 객체바인딩을 통해서 전달한다는 것이다.


📌 마무리

📖 한마디

Java 언어를 배워서 Spring을 사용할 때에 처음 초기 세팅을 하는것이 가장 어려웠던 반면
내용과 관리적인 측면에서는 더 수월하고 쉬워서 좋다.

이제 초기적인 세팅은 거의 끝났다.

앞으로는 좀 더 업데이트 적인 측면을 다룰거 같다.

profile
숨쉬는 돌멩이, 말하는 감자.
post-custom-banner

0개의 댓글