[Spring] MVC

이유은·2023년 10월 22일
0

[Spring]

목록 보기
2/3

1.MVC2 생성!! 스튜던트 서블릿ㄱㄱ!

2.스튜던트jsp 생성​​

  • 화면 실행후 입력을 누르면 -> 스튜던트.do 로 가게끔!

3. 스튜던트 서블릿 생성

스튜던트 두를 실행하면 서블릿으로 가게끔 하자!
그러기 위해서

1) web.xml

2) 스튜던트 서블릿

* 겟,포스트 어떤게 올지 모르니 그냥 서비스로해~!

4. 서버 추가

5. 스튜던트 다오 / 디티오 만들기!

1) DTO

2)DAO

  • dataSource만들고!! 커넥션도 ds.getConnection으로~!

6. 스튜던트 .jsp 고치기

  • 실행해야되는애 마다 value값을 붙이자, insert / delete / find / list -> 그 값을 히든으로!

7. 스튜던트 서블릿 수정

  • 입력,삭제,찾기,목록 -> 클릭하면 이동을 student.do 로! /갈 때 이름은 command / 그 밸류는 각 이름에맞게
  • 눌러졌을때 ! 보내진 것 커맨드 -> 값은 맞는 이름 / 온 커맨드를 스트링응로 받으면 무슨 값이왔는지 알아..
  • 받은 값 분류 -> 맞는 것에 따른 맞는 값으로 출력!
  • 커맨드로 보내놓고 !!! jsp에서는 모드라는 값을 전달했는데 여기는 커맨드 값을 보내서 구별 / 커맨드패턴**

8. 스튜던트 서블릿 - insert로

  • 커맨드로 받아온게 인서트일 경우 -> 인서트 역할을 처리하자, 인서트를 하기위해서는 , 텍스트창에 입력한
    아이디,이름,학급명을 받아와야해/ 겟파라메트로 / 그것들을처리하는 디티오 객체 생성하고 . 그 디티오의 값을
    받아온 애들로 설정! / 인서트 할 수 있는 다오 객체도 만들고~! 디티오객체를 집어넣자. 성공하면 메세지 뜨게

  • 성공하면 -> command 값이 리스트인데로 보내줘 - 목록으로 // 실패시 -> 등록페이지 / start라는 페이지로

  • 이 결과를 리퀘스트에 넣어두자! 성공시 성공메세지와 갈곳 주소를 가지고 보따리를 싸서 ~!

  • 리퀘스트 디스패쳐 -> 보내자 보따리싸둔애들을 -> 메세지 페이지에 보내줘~!

  • view -> 보낼때 / 이 보따리와 , resp도 같이 보내..!

9. 결과페이지 만들기!

  • 값을 보따리싸서보냈으니, 꺼내올떄는 getAttribute!! 꺼내온 것들 창 띄워주자~!

10. 스튜던트서블릿 페이지 수정

딜리트 리스트 파인드 추가

  • 요런식으로 리스트.파인드도 넣어주기

11. 리스트.jsp /web-inf 안에 스튜던트 폴더만들고 만들어주기

  • 인서트 해둔 애들을 다 꺼내서 리스트에 담음 -> 그걸 보따리 싸서 리스트.jsp에 보내줌.

  • 그 값을 꺼내자 / 보낼때 이름 ListStudent라 했으니 그걸 꺼내오자고~!

  • 파인드랑 같이쓰고~ 파인드는 name받아오는것만 서블릿페이지에 추가로!!


🍃 command로 나눠지고있음

interface CommandIf { //인터페이스 만들거
public Object processCommand(req, resp); //처리되게끔 // 커맨드이프 상속받음

insert => InsertCommand
delete => DeleteCommand
find => FindCommand
list => ListCommand
start => StartCommand

나머지애들 다 프로세스 커맨드 만들어주면됨 / 메인에서는 해당되는 객체 만들어서 쓰기만하면됨

객체지향 특성 / 추상화 은닉화 상속성 ?? 등등
인터페이스 만들어서 / 인터페이스 상속받게하면 강제적으로 메소드 받아야됨


방금 만든거를 쪼개보자

1.commandIf 인터페이스 생성

2. 서블릿 변경

1) 인서트 커맨드 생성

  • 프로세스 과정에 받아오는 거 다하고 ~ 모든일 해놓고. 보낼 보따리도 싸놔! 그리고 메세지 창으로 보내줘

2) 스튜던트 서블릿 인서트부분!

  • 서트 값이 들어오면 -> 인터페이스를 상속은 insertCommand 객체 생성
  • 다음페이지 설정 -> 인서트커맨드클래스에서 보내준 값이 주소 / message.jsp 그거 받아서 스트링으로 변환하면
    다음에 어디가야할지 정해짐
  • 다음 보내주자, 넥스트페이지로 / 보낼때 보따리 싸둔것도 보내~! //메세지.url
  • 포워드로넘기면 리퀘스트값 유지가 됨

** 커맨드 패턴 - 이동을 하는데 jsp모든 페이지가 하나의 서블릿으로 이동! 커맨드값을 줘서 구별해주자

** 커맨드 객체화 - 보내온 커맨드가 내용이 너무 많으니 얘네를 객체로 만들어서 불러서쓰자

3) 리스트

  • 클래스 생성시 인터페이스 추가하면 자동 메소드 오버라이드

  • 리스트 커맨드 고대로 가져와서 보내는것만 하지말고 / 보따리까지싸!-> 어디로이동할지 정해서 리턴해줘

4) 서블릿페이지 변경

  • 리스트 커맨드 객체 생성~ 반환된 주소값 스트링으로받고 . 그주소로 싸둔 보다리와 함께 넘어가~!

5) 파인드 & 딜리트 & 스타트

  • 다 똑같은 패턴!!

6) 딜리트 파인드 스타트 커맨드 클래스 만들어주기


++다 이렇게 패턴 똑같고, 페이지 넘 많으니 팩토리를 만들자!
팩토리패턴! -> 커맨드공장을 하나 만들어서 처리하자

1.CommandFactory 생성( 인서트,리스트,커맨드.딜리트.스타트 커맨드가 합쳐진 커맨드)

  • 이클립스 외부에서 객체만들 수 있나요? 없음 객체는 클래스 내부에서만! 싱글톤패턴 / 객체를 하나밖에 못만듦
    /내부에서 내가 만들어줌
  • 스태틱으로 커맨드팩토리 Instance 선언 // 스태틱으로 선언하면 같은 페이지 내에서 스태틱명으로 호출 가능
    생성자 호출 이름 안되고 / 스태틱이 프로그램 시작할때 메모리에 먼저 들어가서 가능하지
  • 리턴 - 인스턴스 -> 객체 어떻게 만들어? 외부에서 만든 객체 가져온거임/ 프로그램내에 객체 한번밖에 못만듦
    만든객체 가져다 쓰는거 /싱글톤 //먼소리냐

** 크리에이트 커맨드 메소드 매개변수 스트링의 cmd / 받아온 값이 insert/delete/find/list라면 그에 맞게 객체생성

2. 스튜던트 서블릿 변경

  • jsp페이지에서 command 값을 받아와서 그 값을 cmd 에 넣고 / 넣은 애로 createCommand 를 해줌 그때 받은 / list,find,delete,insert중 하나의 커맨드값이 . 지금 cmdif의 값이 됨
  • 다음은 . 그 페이지들을 넣었을때 나오는 주소값을 스트링으로 받기

이렇게 객체지향언어는 분산해서 만드는 것을 원칙으로함 !!

profile
우당탕코딩

0개의 댓글