[DAY53] ★MVC 패턴

NA YE SOM·2023년 9월 18일

*복습

el(expression language) : 변수 처리방법

JSTL : 새롭게 생긴 태그



-> el부터 자바코드를 태그로 대체하는 중임

03_fn








-> 값을 처리하는 함수를 호출(값을 묶어주는 el문법 내부에서 사용되는 형태 사용)







split

join

-> 같이 쓰면 replace 용도로 쓸 수 있음




-> function 몰라도
(자바에서 하거나 자바스크립트에서 하면됨)

-> 자바변수는 자바스크립트에서 하는것이 가능함

session에 관련된 예시



-> 자바도 사용해야하니까 자바측에도 session 쓰기


-> 항상 2개를 복붙해서 모든 js가 사용할 수 있게 해줌


-> 어떤 요청이든 :servlet이 받는다.
-> servlet이 id랑 pw을 받을 수 있게 함



-> 소문자 login으로 바꿔야 url form에서 만든것과 일치가능









★★★전원다 이해해야함!

★★★(무조건 알아야함)










--> 로그인안된 상태



-> 작업 안하면 30분 기본값
-> 브라우저를 닫으면 세션이 꺼짐

실행은 jsp창에서 실행


-> 같은 화면인데 if로 분리 처리해놔서






logout servlet 만들기





-> 로그아웃됨











-> 객체는 안만들고 map으로 연습하기



-> cart타입은 list로 잡기
(map이 여러개 들어가있으면 list로 잡기)
-> 배열보다는 list가 나음

-> 내가 담는 물건이 장바구니에 처음 담는것일수도 있고 2번째로 담는 것일수도 있음
-> 누군가는 session에 보관해둬야 하는데(












-> if의 confirm 가로까지 나옴
-> script의 if만듦

★★★자바측에게 confirm창으로 이동해서 확인가능하도록 (두고두고 쓸 수 있음)




-> not 혼용가능

-> map에 들어있는건 item, el임














-> 페이지가 바뀌어도 저장해둔 정보가 지워지지 않는다(session의 힘)











-> 같은이름으로 만들수 없으니 이름도 바꾸고 mapping도 바꾸기!






id는 입력상자이지만 checkbox임(checkbox는 value가 있어야 value값이 넘어온다)
-> 입력란은 입력한것이 넘어옴(checkbox는 checkbox에 작업한 입력값이 넘어온다)




-> check를 아예 안하면 어떤 값이 넘어옴?


check를 했으면 null이 아니고
on이 넘어왔네 안넘어왔네 -> 코드 불필요




-> main jps는 쿠키 확인(있으면 id가 들어있음 -> id꺼내서 input에 넣어주기)
없으면 말기

jps에서는 일반 자바코드를 볼 수 있음 ->



-> 아이디 입력란에다가 표시



-> el사용이 가능하게끔 넣어둔 것















-> 작년 3월에 얹혀진 java가 11임


-> 추가하기


-> Model1만든 사람을 부를 수 있거나 아직 근무하고 있거나 할때

MVC = model2

M : MODEL 자바 클래스

V : VIEW 화면 - JSP

C : controller - servlet

> 이 규칙에 의해서 코드를 만들어줘야함

요청 -> servlet -> javaclass 불고 -> 결과 넘겨주고
->


-> 파일을 골라서 실행 X -> 그냥 project를 실행하는 것


-> web app에 어떤 폴더도 만들지 않고 그냥 거기다가 저장하기




-> 실행하는것만 보기



-> remove all ) 5장빼고 다 빠짐




오늘 날짜, 현재 시간을 요청하면 MVC 패턴으로 답을 내줌






-> 5가지








-> getdate import하기







-> jsp 만들기


-> contextpath를 사용하지 않는다(forward 경로 작성시)


-> forward의 뜻이 request 전달임
-> request에 저장해두고 전달함





-> 한군데서는 저장하고 한군데서는 이동함

저장은 서비스가 함

이동은 controller가 함 (요청받는것, 다시 jsp로 이동하는것)

-> 요청을 받아서 적절한 class를 고르기



-> requset전달해서 now 볼 수 있게 forward해줌

-> 일반적으로 요청에 따라 달라지는건 '주소' 임
-> 주소 자체를 바꾸자





-> submit 이전에 click 이벤트가 동작함
(action이 둘 중 하나로 결정됨)

-> 해당 action으로 데이터 전송 됨

.do로 끝나는 모든 요청









★★★(밑에 구조로 연습하기!!) -> 요청하는 방법 개선






-> interface를 하나 만들어서 exec를 추상으로하고 interface구현하는 형태로 자바 바꾸기



-> 인터페이스 구현체로 바꾸기

getdate, gettime의 부모를 세운 이유 : 두 클래스의 타입(mvc service의 이름의 타입으로 두 객체를 저장할 수 있다)

하나의 코드가 여러 역할을 수행할 수 있다 : 다형성(+가 경우에 따라서 '더하기', 문자열 역할도 됨)

->> string path가 두개있을 필요는 없음



-> 날짜요청, 시간요청 다 나옴

getDate, getTime 생기면 -> 두개의 클래스를 하나로 합치고 기능은 분리해야하니-> 메소드는 2개 나옴

(하나의 클래스에 메소드 2개짜리로 바꿔서 동작하기)





실무!!

★★★(실무!!!!!!!)가 인터페이스로 나옴

하나의 클래스 여러개 추가하는게 소스코드 관리측면 -> 장점이 많음(하나의 파일에 몰아넣기)

-> interface는 계속 활용하기(실무가 이렇게 나옴)

<아쉬운 부분>

1. response가 사용 x

2. redirect하는 부분 x -> 모든 부분을 forward로 하는 점


04_jsp_ex : pdf로 같이 올림

request 전달해보기
session에 올려보기
cookie에 저장해보기

-> 저장소를 바꿔가면서 연습해보기!!

profile
개발자 velog

0개의 댓글