최근 글
STUDY/programming
JSP 게시판 개발 프로젝트 - 6일차(src 파일 생성 및 연결)
2020. 8. 20. 15:59겨우겨우 할 의지가 생겨서 드디어 진도가 좀 나갔다
혼자서 하는 프로젝트가 힘든 이유가 일정에 딱히 쫓기는 일도 없고
안일해지기 쉽기 때문에... 작심삼일이 되기 일쑤다ㅠ
일단 이클립스를 키고, sql connection정보를 작성하기 위해 sqldeveloper도 켜준다
저번에 연결해두었던 디비 연결 정보창
sqldeveloper에 연결해두었던 커넥션 username이랑 패스워드를 다시 보기위해 켰다
META-INF 폴더에 context.xml 파일 하나를 생성해준 후 다음과 같이 작성해준다
파일 생성하기전에 톰캣이 켜져있다면 톰캣을 꼭 끄고 작업해야한다. 모르고 키고 했더니
톰캣에서 오류가 나서 바로 끄고 다시작업했다ㅠ
나는 예전에 쓰던 프로젝트껄 긁어왔는데 만약에 MySql을 써야한다면 다르게 작성해야 하는 듯 하다
오라클은 저기서 username,password만 바꾸어도 무방하다.
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true">
<Resource name="jdbc/oracle" auth="Container"
type="javax.sql.DataSource"
username="SYSTEM"
password="oracle123"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
maxActive="20"
maxIdle="2"
removeAbandoned="true"/>
</Context>
데이터베이스 연결은 어떻게 하는지 구글링 하면 많이 나오는데
다른건 건드릴 필요 없고 sqldeveloper 설정해놓은거 보면서
username, password, driverClassName, url값만 바꾸어 주면 된다
username은 데이터베이스 접속 ID, password는 데이터베이스 접속 비밀번호
driverClassName은 데이터베이스 종류에 따른 드라이버 클래스 이름
url은 접속할 데이터베이스 주소와 포트 번호와 SID 이다
DB를 연결해볼까 하다가 만들어둔 View파일들을 먼저 연결하고 싶었다
그래서 예전 프로젝트껄 그대로 따라할까, 블로그에 나오는 새로운 방식으로 할까 고민하면서
블로그 글들을 엄청나게 뒤졌는데 처음부터 끝까지 자세하게 알려주는 블로그가 없음...
예전에 만든게 Filter-Controller-DAO-DAOImpl-Controller-View(jsp)의 구조였다면
블로그에 나오는것들은 Servlet-DAO(DAOImpl의 역할을 함)가 많았다. 그냥 서블릿 예제들이여서 그럴지도
간단한 게시판 예제만 많아서 Controller까지 작성해서 보여주는 블로그가 없었다..
회사에서 쓰던 Struts도 나오는 블로그가 몇 없었다..
그래서 그냥 예전걸 따라하기로 결정했다. 그리고 어떻게 했는지 기억이 안나니까 또 폭풍 검색하고
소스 분석하면서 다시 정리해보았다.
-------------------------------------------------------------------------------------------------------------
Filter : url 맵핑을 위해 쓰인다. Struts.xml에서의 url맵핑과 같은 역할을 한다.
jsp에서 href로 보낸 주소를 사용해서 filter에 가면 url을 매핑한다음 controller로 보내서
controller에서 작성된 jsp 페이지가 보이도록 하므로 홈페이지 주소창에는 더이상 .jsp가 뜨지 않는다.
Controller : 모든 동작을 처리한다. 동작이 처리되면 jsp 페이지로 넘어간다.
DAO : Interface 파일로 DAOImpl에 들어갈 함수를 선언해준다. DAOImpl에서는 해당 함수를 오버라이딩해서 생성한다.
DAOImpl : DAO에서 선언된 인터페이스를 구현한다. DB작업은 여기서 이루어진다.
sql와 커넥션한다음, 쿼리문을 날려서 저장하거나, select해와서 값을 Controller에 보낸다.
VO : DB의 테이블로부터 검색한(조회한) 레코드의 컬럼값을 변수에 저장하거나
변수에 저장된 값을 VO객체를 생성하여 한번에 DB에 추가하는 역할을 한다.
테이블에서 조회한 레코드의 컬럼값을 속성(변수)에 저장해야 하므로
테이블의 컬럼 이름과 동일한 자료형과 이름으로 변수를 선언하고 getter/setter메소드를 각각 만들어준다.
Controller에서 여러개의 매개변수를 가져오기 위해 새로 생성자를 생성해주기도 한다.
ex) Contactus_VO data = new Contactus_VO(c_num,c_title,c_pass,c_date,c_content,c_name,c_mail,c_count,umemberid);
Jsp : 웹상에서 보여지는 화면이다. jsp에서는 html과는 다르게 값을 불러와야 하는 일이 있으므로
<% %>스크립트를 사용해서 Controller의 값을 갖고와서 사용한다.
JAVA -> JSP : 같이 활용되고 프로그래밍 된다
JAVA, JSP -> Struts : 스트럿츠 프레임워크에서 프로그래밍 된다.
JAVA -> iBatis : 데이터 질의를 처리한다.
iBatis -> Oracle : 데이터 질의를 실행한다.
-------------------------------------------------------------------------------------------------------------
아무튼 그래서 src폴더 밑에 패키지들을 만들어 주었다.
com.filter, com.controller, com.vo, com.dao
그리고 패키지 밑에 파일생성.
filter는 filter파일, controller는 servlet, vo와 daoimpl은 class, dao는 Interface파일로 만들어주었다.
SuFilter파일을 생성한다음 불필요한 주석은 지운다. 기본 생성자도 필요X
그리고 web.xml을 열어서 필터 매핑을 해준다.
url-pattern안에 요청 url의 패턴을 적어준다.
/*.su이면 끝이 .su로 끝나는 모든 페이지들이 필터를 거쳐서 보여지게 된다.
메인화면에서 넘어가는걸 확인하고싶어서 몇개만 작성해주었다.
필터에서 컨트롤러를 선언해서 컨트롤러의 함수로 넘어가도록 해두었으니 컨트롤러도 작성해야 한다.
컨트롤러 파일도 생성한다음 다음 화면과 같이 입력해준다.
dao에 생성된 인터페이스 그대로 daoimpl에 들어갈거라서 dao선언은 저렇게 해주는 듯 하다.
메인과 welcome페이지는 따로 값을 받을 필요가 없는 페이지라서 저렇게 간단하게 연결되었다.
아직 기억을 되살리고 있는 단계라서 예전 소스 한번 보고, 작성하고 반복이다ㅠㅠ
제대로 연결이 되었는지 확인하러 톰캣을 실행시키고 main1.jsp로 들어갔다
여기서 home을 누르면
home.su가 뜨게 된다. 톰캣을 실행시켰을때 바로 home.su로 가게 하는게 좋은데 나중에 해야겠다
home.su에서 about과 about안의 welcome을 누르면 제대로 welcome.su로 이동된다!
제대로 연결되었다ㅎㅎㅎㅎㅎ
사실 그대로 바로 따라했으면 금방금방 됐을건데 이해하면서 하려고 하다보니까 시간을 많이 잡아먹었다ㅠㅠ
나머지 화면들도 다 연결하고, 화면 들어갔을때 글씨 색도 바뀌도록 다 바꾸었다!
그리고 하나 알게된 사실인데 window에서 web browser로 들어가면 run할때 창이 어디서 켜질지 정할 수 있다
이제 Price list랑 Booking을 만드는걸 목표로 해야겠다
'STUDY > programming' 카테고리의 다른 글
JSP 게시판 개발 프로젝트 - 8일차 (0) | 2020.09.10 |
---|---|
JSP 게시판 개발 프로젝트 - 7일차 (0) | 2020.09.10 |
JSP 게시판 개발 프로젝트 - 5일차(View 만들기) (0) | 2020.08.20 |
JSP 게시판 개발 프로젝트 - 4일차(DB설정) (0) | 2020.08.18 |
JSP 게시판 개발 프로젝트 - 3일차(메인화면) (0) | 2020.08.18 |
STUDY/programming의 글 더보기