■ mvnrepository.com 접속하기



■ jstl 검색창에 검색해서 나온 리스트들 중에 가장 다운로드 많은 jstl을 선택




■ 선택한 jstl을 클릭하기




■ 마찬가지로 버전 중에 다운로드 수가 가장 많은 것은 선택








■ 선택한 버전을 클릭






■ jar 파일을 눌러서 다운받기




■ 검색창에 standard 검색






■ standard검색창에 검색해서 나온 리스트들 중에 가장 다운로드 많은 standard을 선택




■ 버전 중에 가장 다운로드 수가 많은 것을 선택













■ jar파일 다운로드




■ jstl파일과 standard파일 복사하기





■ WEB-INF / lib 폴더 안으로 붙여넣기 그러면 자동으로 빌드를 해준다



'Web' 카테고리의 다른 글

게시글 만들기 - 데이터 베이스  (0) 2018.08.17
게시글 만들기 - 구성  (0) 2018.08.17
데이터베이스 연동  (0) 2018.08.16

■ src/main/java





■ src/main/webapp





■ DAO Package - 데이터베이스와 연결, 쿼리문 실행, 해제를 담당할 객체





■ ServicePakage - DAO를 활용하는 객체






■ VO Package - 데이터베이스에 있는 데이터를 저장할 객체






■ Web Package - 클라이언트의 요청을 받고 다시 응답을 해주는 객체





■ filter Package - web.xml과 서블릿 중간에서 공통적으로 작업해주는 객체





■ util Package - 데이터베이스 연동하는 코드를 재활용 목적으로 만든 객체




■ lib 폴더 - 필요한 라이브러리 모음





■ view 폴더 - 클라이언트에게 보여줄 JSP파일




■ web.xml - 클라이언트 요청에 맞는 서블릿을 찾아주는 파일





















'Web' 카테고리의 다른 글

게시글 만들기 - 데이터 베이스  (0) 2018.08.17
jstl.jar파일 standard.jar파일 빌드하기  (0) 2018.08.17
데이터베이스 연동  (0) 2018.08.16

■ 클라이언트 요청

클라이언트가 웹브라우저에 url을 입력한다. 

localhost:8080 - 연결할 파일이 있는 서버를 가리킨다. 8080은 포트번호로서 htttp 프로토콜 번호 8080을 의미한다.

board - 서버에 연결되면 연결할 파일이 들어있는 폴더명을 입력받게 된다. 


■ Servlet


서블릿은 Servlet Container 위에서 동작되는 자바 프로그램이다. 본인은 서블릿 컨테이너로 톰캣을 사용하였다.

클라이언트 요청을 웹서버가 인지하기 위한 정보들이 필요한데 이러한 정보들이 XML파일에 기록되어 있다.


■ web.xml




display-name을 보면 board라고 적혀있다. 클라이언트 요청한 파일이 저장되어있는 폴더 명이다.

web.xml 파일에는 서블릿과 JSP를 어떻게 실행하여야 하는지가 적혀있다. 이러한 역할을 DD(Deployment Descriptor)라고 한다.

내용들을 살펴보니 <servlet-mappling> 태그 안에 BoardListServlet이라는 서블릿 클래스를 "/"로 매핑이 되어 있음을 알 수 있다.







서블릿 클래스 즉 BoardListServlet는 <servlet>태그 안에 정의가 되어있다.

그 내용을 살펴보니 서블릿 클래스의 경로가 com.ktds.board.web.BoardListServlet 에 있음을 알 수 있다.

지정되어 있는 서블릿 클래스를 실행하게 된다.



■ 서블릿 클래스





xml 파일에 정의된 서브클래스를 살펴 보겠다.

해당 서블릿 클래스는 기본적으로 자바 클래스 생성된 것을 알 수 있다. 그리고 HttpServlet 클래스를 상속받고 있다.

부모 클래스를 상속 받고있는 하위 클래스는 doGet 메소드와 doPost메소드를 갖고 있다.

이 두 가지의 메소드는 전달 방식을 의미하며 get은 가져오는 개념이고 post는 수행하는 개념이다.


get방식은 주소창에 값이 출력된다. 그리하여 작은 데이터를 처리할 때는 get방식이 용이하다. 

사용자가 요청하는 데이터를 보여주기 위해서 주로 사용된다. 


반면에 post 방식은 주소창에 값이 출력되지 않는다. 많은 양의 데이터를 보낼 때는 주로 post방식을 사용하게 되는데 주로 게시판에 글을 작성하게 되면 글의 내용이 DB에 저장이 되고 수정을 하면 DB에 저장된 값이 수정된다. 이때 주로 Post 방식을 사용한다. 


화면창에 값을 출력하기 위해서 get 방식을 사용하겠다. doGet 메소드의 아규먼트를 살펴보니 두 개의 객체가 보인다. request는 클라이언트의 요청을 처리하기 위한 객체이며 response는 클라이언트의 응답을 처리하기 위한 객체이다.


◆ 서블릿의 생명주기


1. 객체생성 -  톰캣과 같은 WAS가 자바파일을 컴파일하여 클래스 파일을 만든 다음 메모리에 할당하게 된다. 서블릿 클래스를 메모리에 

할당하여 객체를 생성한다. 이후부터 서블릿 객체는 다시 생성되지 않으며 메모리에 할당된 서블릿 객체만을 사용하게 된다.

2. init() - 객체가 생성되었다면, init() 메소드가 호출되어 초기화 작업을 수행한다.

3. Service() - 서비스 메소드는 클라이언트의 요청에 따라서 get방식과 post방식을 사용하게 된다. 여러명의 클라이언트의 작업을 동시에 작업하기 위하여 쓰레드가 생성이 되고 작업을 병렬로 처리할 수 있게 된다.   

4. destory() - 서블릿의 사용이 끝나게 된다면, destroy()메소드 호출되어 연결을 해제한다.



■  Service 호출



서비스를 호출하는 문이다.



BoardService의 인터페이스다. 기능을 정의하는 부분이고 기능을 구현하는 부분은 BoardServiceImpl 클래스에 있다.





BoardServiceImpl 클래스 안에 BoardDAO 클래스가 선언되어 있다.





인터페이스의 구현 클래스 BoardServiceImpl의 readAllBoard 메소드를 보니깐 리턴타입이 List<BoardVO> 이며


boardDAO 클래스에 있는 selectAllBoards 메소드를 반환한다.




BoardDAO객체는 데이터베이스와 연동하는 객체로서 그 의미가 있다. 이것 또한 인터페이스이며 기능만 정의되어 있다.

기능이 구현되어있는 BoardDAOImpl를 확인해보겠다.






BoardDAOImpl 클래스에는 오라클에 접속하고 쿼리문을 실행 준비하고 쿼리문을 실행하는 역할을 담당한다



■ 오라클 접속





계속해서 쓰이는 부분이기 때문에 메소드로 만들었다.



필요한 부분에서 이렇게 오라클을 접속하는 메소드를 호출하였다.



■오라클 계정을 로그인 하기




데이터 베이스 계정으로 로그인하는 부분이다.

이 부분도 자주 쓰이기 때문에 재활용의 목적으로 메소드로 구현하였다.




Connection conn = createDatabaseConnection();

를 통하여 데이터 베이스에 접속하였다.




■ 쿼리문 준비





쿼리문은 항상 달라지기 때문에 쿼리문을 준비하는 부분은 추상메소드로 정의하였다





이렇게 선언을 했으면 구현하는 부분은 BoardDAOImpl 클래스에 구현이 되어있다.








Sql 클래스를 선언한 다음 추상메소드로 선언된 쿼리문 준비 부분만 이렇게 구현하면 된다




■ 쿼리문 실행




Sql 클래스에 선언된 추상 메소드이다.









BoardDAOImpl 클래스에서 쿼리문을 실행하는 부분을 구현시킨다.








마지막으로 리스트객체로 반환한다.



■ 데이터베이스 연결 해제





데이터베이스 연결을 하제하는 것은 ResultSet > PreparedStatement > Connection 순서대로 기존의 선언된 역순으로 해제하면 된다.

이 부분 또한 자주 사용 되는 부분이기 때문에 따로 메소드로 구현하였다.






필요한 부분에 이렇게 메소드를 호출하면 된다.



■ 클라이언트 요청 응답




RequestDispatcher가 클라이언트에게 JSP를 보여주는 역할을 담당하다. 

path 즉 경로를 확인해보니깐 list. jsp 파일이 있다고 정의 되어있다.




RequestDispatcher가 forward 메소드를 통하여 브라우저에 보여주게 된다.

























'Web' 카테고리의 다른 글

게시글 만들기 - 데이터 베이스  (0) 2018.08.17
jstl.jar파일 standard.jar파일 빌드하기  (0) 2018.08.17
게시글 만들기 - 구성  (0) 2018.08.17

+ Recent posts