MVC 구현
Model(boardDAO,boardDTO)
V(list.jsp, insert.jsp, insertOk.jsp, detail.jsp, update.jsp, updateOk.jsp, delete.jsp)
C(controller.frontcontroller - Act.action인터페이스를 상속받은 listaction, insertaction,insertOkaction, detailaction, updateaction, deleteaction)
Act.action ->인터페이스(request와 response를 받아 execute 추상메서드를 구현해서 다른 action에게 상속시켜준다.)
Act.action ->인터페이스(request와 response를 받아 execute 추상메서드를 구현해서 다른 action에게 상속시켜준다.)
Act.listaction (controller.frontcontroller에서 url이 list.do와 같으면 listaction객체를 생성하고 메서드를 구현한다.) ->
action인터페이스를 상속받아 execute메서드를 오버라이딩시켜주고 Model(DAO)에 접근하고 처리해주는 로직을 수행하고
결과값을 request.setAttribute()를 이용해서 객체로 만들고 그 객체를 return시켜서 View(jsp)에 값을 전달시킨다.
>>list.jsp는 getAttribute로 값을 전달받고 화면에 뿌려준다.
Act.insertaction(controller.frontcontroller에서 url이 insert.do와 같으면 insertaction객체를 생성하고 메서드를 구현한다.)->action인터페이스를 상속받아 execute메서드를 오버라이딩시켜주고 path를 "insert.jsp"로 바로 리턴시켜준다.
(insert는 입력페이지가 따로 필요하다. 따라서 insert.jsp로 경로를 리턴해준다.)
>>insert.jsp는 입력페이지화면을 뿌려주고 값을 form태그로 필요한 값을 입력받아 insertOk.do 액션으로 값들을 전달해준다.
Act.insertOkaction(insert.jsp에서 form태그의 action값을 주어서 값을 전달시켜주었다. insertOk.do액션으로 링크가 걸렸기 때문에 controller.frontcontroller는 insertOk.do를 인식하고 Act.insertOkaction객체를 생성하고 execute메서드를 수행한다)
->insert.jsp에서 post로 전달한 값들을 getParameter로 받고 Model의 DTO객체에 저장후 DAO로 로직을 구현해 DTO를 삽입한다. 모든 수행이 완료되면 insertOk.jsp페이지로 return해주고 몇개가 삽입되었는지 스크립트로 구현해준다.(그 후 location.href="list.do"로 이동해서 다시 화면에 자료를 뿌려준다.)
Act.detailaction(list.jsp에 a 태그의 액션을 이용하여 값을 누르면 detail.do로 페이지를 전환시켜주는 버튼을 생성했다 이 액션이 수행되면 controller.frontcontroller에 의해 detail.do가 url로 인식이 되고 Act.detailaction객체가 생성되고 execute메서드가 수행된다)
->앞서 a태그에서 값을 전달하면 그값을 받아서 DAO 로직을 구현해 DTO로 해당하는 값을 받아온다. 이를 setAttribute로 묶어서 객체화 시켜주고 return detail.jsp수행한다.
detail.jsp>>
앞서 detail.do를 실행하면 DTO객체를 받아올 수 있었다. 따라서 이값을 받아서 화면에 뿌려준다.
(detail.jsp에는 해당하는 DTO를 수정하고 삭제할 수 있는 버튼이 있다. 따라서 버튼을 누르면 update.do나 delete.do를 수행한다.-앞서 내용들과 매우 비슷한 로직으로 구현되기 때문에 이부분은 생략하겠다.)
Context.xml>>
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="myboard/oracle"
auth="Container"
type="javax.sql.DataSource"
maxActive="10"
maxIdle="4"
maxWait="-1"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@KITRI-E00:1521:orcl"
username="hr" password="tiger"/>
</Context>
Web.xml>>
<servlet>
<servlet-name>ttt</servlet-name>
<servlet-class>controller.frontcontroller</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ttt</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<resource-ref>
<res-ref-name>myboard/oracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>