-
[jsp] MVC패턴1 으로 프로젝트 구성 (구성중)기초/JSP 2017. 3. 22. 12:54
MVC방법으로 프로젝트를 만드려고 한다.
#MVC 패턴
뷰 (view) : 사용자에게 보여지는 구간
뷰 >> 뷰로 이동하는게 아니다
뷰 >> 서블릿 >> 뷰로 이동한다.
이때 서블릿은 DB에 접근해서 데이터처리를 통해 사용자에게 뷰를 제공하낟.
ex) 로그인이 안되있을 때 login페이지 로그인 되있으면 member 페이지..
조정 (Controller) : 실질적으로 데이터가 처리되는 구간
서블릿이 DB접근, ID체크, CRUD메소드를 각각 서블릿에 구현하지않고
DB에 관련된 클래스를 만들어 호출하는 형식으로 사용한다.
이러한 DB관련 메소드를 가지고 있는 클래스가 DAO다.
서블릿 >> DAO에서 메소드 호출 >> DB접근 >> 데이터처리 >> 뷰
이런 형식이 만들어 지는것이다.
DAO : Data Access Object
DB에 관련된 메서드를 가지는 클래스( db연결, crud메서드)
crud : c: create(insert) r : read(select) u : update d : delete
>>DAO(객체)의 목적은 서블릿이 DB에 접근하는 메서드들의 집합체 역할이다.
모델 (model) : 데이터 단위
return값은 0 or 1개이다.
하지만 여러개의 데이터처리(insert, delete, update...)에서 데이터들을 가져올 때
변수 하나하나를 가져오는게 아니라 객체단위로 묶어서 가져온다
이러한 데이터 단위를 객체로 묶은 클래스가 DTO이며
단위가 정해져있으니깐 실제 데이터를 저장할 클래스 ValueObject를 만들며 이 클래스는 Bean규약을 가진다.
Model =>>>> DTO = VO = Bean
DTO : Data Transfer ObjectVO : Value ObjectBean 규약 : 멤버변수는 private 멤버변수 접근은 getter / setter그림으로 .. 그리느라 ... 힘들었습니다...
구성
= 멤버쉽 게시판 =
페이지 명세
뷰 (jsp) -
member 폴더
login.jsp 아이디, 비번
>> 로그인에 실패하면 main으로 이동할 수 없다.
>> idCheck.jsp
join.jsp 가입 페이지
>> 회원가입 페이지로써 가입이 완료되면 다시 login페이지로 이동
>> 자바코드는 서블릿으로
>> insert(of DAO)
idCheck.jsp id 중복/사용 여부 체크하는 양식
>> 로그인을 체크한다 로그인이 성공하면 main으로 이동한다
>> userCheck(of DAO)
memberUpdate.jsp 회원정보 수정
WebContent 폴더
main.jsp (로그아웃, 회원정보수정, #회원탈퇴) : 로그인이 성공된 다음의 회원페이지를 만든다.
로그아웃 : 따로 폼이 필요없다
회원정보수정 : memberUpdate.jsp >> 데이터수정은 서블릿으로
회원탈퇴 : 비밀번호만 체크하는 곳이랑
index.jsp web.xml에 등록되어있는 페이지로써 naver.com/index.htm으로 이동되지않고
naver.com으로 이동되는 대문 같은 페이지
@컨트롤 (서블릿)
com.koreait.controller 매핑값(확장자 패턴)
IdCheckServlet - /idCheck.do
JoinServlet - /join.do
LoginServlet - /login.do
LogoutServlet - /logout.do
MemberUpdateServlet - /memberUpdate.do
com.koreait.dao.MemberDAO (DB연동 / 메서드 CRUD sql / id 체크) -> 클래스
모델
com.koreait.dto.MemberVO -> 클래스
페이지 요소 - view에 들어갈 css, js, ....
WebContext 폴더
script 폴더
member.js (입력 확인)
*작성 순서
#1 DB에 맞춰서 모델 클래스를 생성한다
sql > create로 생성된 table을 그대로 가져와서 자바 변수로 바꿔준다.
class Member{
private String name;
private String id;
private String pw;
private String phone;
private String email
private int admin;
//기본 생성자 getter/setter, toString
}
#2 DAO 메서드 틀을 제작한다.
DB연결해서 권한을 가져오는 것은 한번만 만든다 > 싱글턴패턴을 사용한다
그리고 메서드로 계속 부르겠다.
싱글턴 패턴 : 생성자는 private를 가지고 있으며 생성자는 다른 메서드의 return값의 new로 반환된다
[DAO 생성메서드]
id : primary key
1) public int userCheck(String id, String pwd){} >>user체크 //id와 pwd가 필요
2) public MemberVO getMember(String id){}
>> Member를 가져오는데 name, id, pw, phone..등등 가져와야되는데 return 값은 하나여서 객체로 리턴받는데
>> 그때 사용되는게 MemberVo.java(Model객체)
3) public int confirmID(String id){} >> id 체크 >> boolean타입으로 안하는이유는 없는지 있는지 틀린지 << 여러개의 상황으로 처리
4) public void insertMember(MemberVO vo){}
5) public void updateMember(MemberVO vo){}
6) public void deleteMember(MemberVO vo){}
#3 뷰 페이지부터 설계를 시작한다.
view > servlet > view > servlet > ... 이렇게 뷰와 뷰사이에는 항상 서블릿에서 이동한다.
>view>1) index.jsp >>
로그인을 하려고 한다. 타이틀은 북마크를 생각해서 자세한 내용을 적는다
ex) 회원관리 홈페이지::자바프로젝트::jsp프로젝트
>servelt> 2) LoginServlet.java(로그인체크) >>
세션(getSession)에 로그인 정보가 있으면 회원전용페이지(미정)로
없으면 login.jsp로 이동한다. >move> 3) login.jsp 이동
이때 페이지이동 기술은 쿼리스트링을 사용하는 response.sendredirect가 아니라
url, request ,response 파라매터를 사용하는 request.Dispatcher.forward를 사용한다.
>view> 4) 로그인 창으로 로그인버튼과 회원가입버튼으로 경로가 나뉜다.
여기서 id와 pwd에 대한 유효성검사를 js에서 해준다. >> 회원전용페이지(미정)
>js> 5) id와 pwd가 입력되지 않으면 메세지 창을 띄워준다.
>move> 6) 회원가입 버튼을 누르면 joinServlet으로 이동한다.
>servlet> 7)?? >move> 8)회원가입페이지(join)으로 이동한다.
>view> 9)회원가입페이지(join)에서는 모든value값을 넣을 수 있는 폼이나온다
>window 창 move> 10) id 중복체크를 한다 이때는 id체크를 위한 다른 창을 열어서 확인을한다.
id체크를 위한 text,와 hidden을 만든다.
>servlet> 입력된 id를 가져와서 DAO를 통해서 DB에서 검사한다.
>> 7) joinServlet(서블릿) 회원정보를 서블릿에서 insert해줘야 한다.
insert메서드는 DAO에 있으므로 DAO에서 꺼내쓴다.
'기초 > JSP' 카테고리의 다른 글
[JSP] MVC패턴2로 프로젝트 구성 (제작중) (0) 2017.03.29 [JSP] 페이지 이동 기술 (0) 2017.03.23 [JSP] JSP DB연동 3가지 방법 (4) 2017.03.21 [JSP]데이터 베이스 (0) 2017.03.20 [JSP] DB 환경설정(sql developer, eclipse) (2) 2017.03.17