이전의 포스트에서는 jsp를 통해서 View만 건드렸다면 이번엔 MV(Model1)을 사용하였다.
이전엔 JSP파일 안에 구성하는 모든 부분이 들어있었다면 Model1에서는 Model과 View 두가지 영역으로 나눠 사용하는 것이다.
Model을 만들기 위해선 JavaBean(.java)이 필요하다.
해당 글은 기존의 주소록 파일을 수정하는 것이기 때문에 변형에 필요한 JavaBean을 생성하여 실행하였다.
생성한 JavaBean 모델은 다음과 같다.
기존의 list.jsp 파일을 다음과 같이 변경하였다.
JSP의 Service영역에서 ArrayList 클래스와 AddrDTO, AddrDAO를 사용하기 때문에 다음과 같이 import와 JSP Action을 사용해 준다.
ArrayList에서 generic을 를 사용한 이유는 addrDao.list 메소드에서 반환 되는 list의 generic을 넣어줘야 하기 때문.
<%= %>에서 dto의 메소드를 사용할 수 있는 이유는 Enhanced for loop를 사용시 list의 데이터를 AddrDTO 타입의 dto 변수에 넣어 사용했기 때문에 해당 클래스의 메소드를 사용 할 수 있기 때문이다.
1) 방법 1
기존의 AddrDTO의 insert 메소드를 사용 할 경우 위와 같이 insert()의 파라미터에 맞는 값을 request.getParameter() 메소드를 이용해 가져와 사용한다.
2) 방법 2
위의 이미지 처럼 사용할 경우 JSP Action의 setProperty(데이터 값을 설정할 때 사용)를 통해 AddrDTO파일의 insert 메소드를 다음과 같이 수정해야 한다.
다음과 같이 수정할 경우 setProperty의 name은 useBean의 id와 같아야 하며 넘겨주는 form 안의 param값과 property의 값이 같아야 한다.
삭제를 누를 시 Get으로 넘겨 받은 seq 값을 AddrDAO의 delete 메소드의 파라미터 값으로 넣어준다.
넘겨 받은 seq를 이용해 해당 sql 문장이 완성되어 원하는 주소록의 행의 삭제가 가능하다.
1) request객체
주요 기능:
• 사용자 요청(request)과 관련된 정보를 처리할 때 사용.
• 주로 HTML 폼을 통해 전달된 값을 가져올 때 사용함.
2) response 객체
주요 기능:
• 사용자 요청에 대한 응답 처리
• 페이지 전환
3) out 객체
주요 기능:
• 스크립트릿에서 브라우저 출력, 버퍼 컨트롤
4) session 객체
주요 기능:
• 클라이언트와의 지속적인 연결 유지를 위한 세션 처리
• 세션은 하나의 애플리케이션 내에서만 유효함.
• 두 개의 서로 다른 애플리케이션에서는 쿠키를 사용해야 함.
• 세션은 단순한 쿠키 대용이 아님.
5) config객체
주요기능:
• 애플리케이션에서 공유할수 있는 초기화 변수 접근
• web.xml 에 초기화 패러미터가 설정되어야 함.
• 애플리케이션의 ServetContext객체를 가져옴.
6)application 객체:
주요기능:
• 웹 애플리케이션(컨텍스트) 에 관련된 정보를 제공
• 개발자를 위한 서버 정보
• 서버의 각종 자원 정보
• 로그 관련 정보
• application scope의 속성 관련 정보
7) page객체 :
주요 기능:
• JSP 파일에서 자기자신을 참조할때 사용함.
• <%@page language=java...%>인 경우 크게 의미는 없음.
8) pageContext객체:
주요 기능:
• include, forward 액션의 실제구현에 응용됨.
• 내장객체에 대한 프로그램적인 접근방법 제공
9) exception 객체:
클래스 : java.lang.Throwable
주요 기능:
• page 지시어에 isErrorPage=“true” 로지정된 에러 페이지에서 사용
• 현재 호출된 에러 정보 제공.
ArrayList에서 generic을 를 사용한 이유는 addrDao.list 메소드에서 반환 되는 list의 generic을 넣어줘야 하기 때문. < = 이부분 설명좀해주세여 박남희씨