반응형

Servlet JSP MVC Spring 20

[MVC] 게시판 구현하기_조회, 글 추가

이때까지 회원정보에 대해 CRUD 작업을 진행하였다. 이번에는 이 회원들의 정보를 통해 답변형 게시판을 구현해 볼 것이다. 먼저 DB를 좀 조정해야한다. 이제까지는 회원에 대한 DB테이블을 통해 회원의 ID, PW, e-mail 등의 정보를 가졌지만 여기에 게시판글을 저장하는 테이블이 필요하다. 이 테이블은 작성자 ID가 외래키의 역할을하며 테이블의 내용에는 글 번호, 부모 글 번호(댓글에서 필요), 글 제목, 글 내용 등의 속성이 필요하다. 아래 그림의을 참고하여 이해할 수 있다. 'SQL Developer'를 사용하여 테이블을 만들고 테스트 글을 추가해보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 DROP TABLE t_B..

[MVC] 정보 수정 및 삭제

이번에는 DB의 정보를 수정하고 삭제하는 기능을 MVC모델로 구현해보자. 일련의 과정은 아래와 같다. 1) '수정하기'를 클릭하면 컨트롤러에 요청한다. 2) 컨트롤러는 전송된 회원 정보를 가져온 후 테이블에서 회원정보를 수정한다. 3) 수정을 마친 후 컨트롤러는 회원목록을 보여준다. 삭제 1) '삭제'를 클릭하면 회원ID를 컨트롤러로 전달한다. 2) 컨트롤러는 request의 getpathonfo()메서드를 이용해 요청명을 가져온다. 3) 회원 ID를 SQL문으로 전달해 테이블에서 정보를 삭제한다. 수정 작업을 진행해보자. 새로운 패키지를 만들어 이전의 컨트롤러와 DAO 그리고 VO 클래스를 복사하여 붙여넣는다. 그리고 새 JSP파일을 관리할 test02 폴더를 만들어 이전의 JSP파일 역시 복사하여 붙..

[Servlet] 포워드(dispatch), 바인딩

포워드: 하나의 Servlet에서 다른 Servlet이나 JSP와 연동하는 방법 - 요청에 대한 추가 작업을 다른 Servlet에게 수행 - Request에 포함된 정보를 다른 Servlet이나 JSP가 공유할 수 있음 - Request에 정보를 포함시켜 다른 Servlt에 전달 - MVC 패턴에서 Servlet에서 JSP로 데이터를 전달하는데 사용 redirect, Refresh, location, dispatch방식이 존재하는데 여기서는 dispatch방식만을 다룰것이다. dispatch는 Servlet에서 클라이언트를 거치지않고 바로 다른 Servlet에게 요청하는 방식이다. dispatch 웹 브라우어 주소창의 URL이 변경되지 않는다. 클라이언트에서 포워드가 진행되었는지 알 수 없다. 프로젝트를..

[MVC] MVC 모델, 테이블 조회 및 생성

모델 1 방식 JSP를 하지는 않았지만, JSP를 이용한 방식이 모델 1 방식이다. DB연동 같은 작업과 그 결과를 나타내주는 작업을 동일한 JSP에서 수행한다. 즉, 모든 클라리언트의 요청과 비지니스 로직을 JSP가 담당하는 구조이다. 기능 구현이 쉽고 편리하다는 장점이 있지만, 복잡해지면 유지보수에 문제가 발생한다. 이 모델 1 방식의 단점을 보완한 것이 모델 2 방식이다. 흔히 알고있는 MVC패턴에 대해 시작할 것이다. 모델 2 방식 웹 애플리케이션의 각 기능(클라이언트 요청, 응답, 비지니스 로직 처리)을 분리해서 구현한다. 각각의 기능을 모듈화 한다라고 이해하면 된다. 즉, 기능이 분리되어 있어 개발 및 유지보수가 쉽고 재사용성이 높다. MVC 디자인 패턴 Model-View-Controller..

[Servlet]커넥션풀을 이용한 회원 정보 CRUD(생성,조회,수정,삭제)

이전에 작업한 방법의 문제는 필요할 때마다 연동해서 작업하는 경우 연결에 시간이 많이 걸린다는 문제가 있다. 이를 위해 웹 어플리케이션이 실행됨과 함께 연동할 데이터베이스와의 연결을 미리 설정하여 필요에 따라 연결해 놓은 상태를 이용해 빠르게 DB와 연동하여 작업하는 방법이 있다. 이 방법을 '커넥션풀' 이라한다. 아래 그림을 보며 커넥션풀의 동작 과정을 보며 이해해보자. 구현을 위해서는 Java SE에서 제공하는 javax.sql.DataSource 클래스가 필요하다. 그리고 웹 어플리케이션 실행 시 Tomcat이 만들어 놓은 커넥션풀 객체제 접근할 때 JNDI를 사용할 것이다. JNDI란 필요한 자원을 key/value 쌍으로 저장 후, 필요할 떄 키를 이용해 값을 얻는 방법이다. Tomcat 컨테이..

[Servlet] 서블릿과 데이터베이스 연동 조회: PrepareStatement

이번에는 서블릿이 클라이언트로부터 요청을 받으면 그 요청에 대해 작업을 수행하는 것을 해보자. 보통, 회원 등록 요청 처리, 로그인 요청 처리 등의 처리를 의미한다. 아래 그림이 우리가 진행할 로직이다. 서블릿에서 데이터베이스와 연동하는 과정은 클라이언트로부터 요청을 받으면 서블릿은 SQL문을 사용해 데이터베이스에 접근하여 작업한다. 이를 바탕으로 회원정보에 대한 CRUD작업을 하는것이 목표이다. 먼저 회원정보를 조회해보자. 회원 정보 테이블을 생성한 후 회원 정보를 추가하여 웹 브라우저에서 서블릿으로 요청하면 데이터베이스와 연동해 회원 정보를 웹 브라우저로 출력하는 작업이다. 이번 실습의 구조는 아래와 같다. sqldeveloper 데이터 먼저 Sqldevelper를 사용하여 데이터베이스를 정의한다. ..

[Servlet] 웹 브라우저에서 서블릿 전송 및 예제들

이번시간에는 웹 브라우저에서 서블릿으로 데이터를 전송하는 방법에 대해 알아보자. 많이 들어봤겠지만, 여기서 GET, POST방식이 사용된다. GET 방식: URL뒤에 name=value 형태로 전송되며 보안에 취약, 데이터 최대 전송량은 255자이다. 기본 전송방식이고 사용이 쉽다. POST 방식: 데이터의 HEAD 영역에 숨겨진 채 전송, 보안에 유리, 데이터 전송량은 무제한 전송 시, 서블릿에서 가져오는 작업을 하므로 속도가 GET보다 느림 자 그럼 두 방식을 간단하게 살펴보자. 이전에 사용한 예제들을 다시보자. login.html 1 2 3 4 아이디 : 비밀번호: http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-d..

[Servlet] 서블릿에서의 요청 얻기와 응답

서블릿은 클라이언트가 요청을하고 서블릿과 데이터베이스 연동과 같은 비지니스 로직을 처리한 후 처리된 결과를 클라이언트에 돌려주는 기능을 한다. 이번 시간에 서블릿의 응답과 수행 요청 처리에대해 알아보자. 요청 : javax.servlet.http.HttpServletRequest 클래스 응답: javax.servlet.http.HttpServletResponse 클래스 에 정의되있다. API에서 함수 이름은 doGet() 이나 doPost() 메서드의 매개변수를 통해 확인할 수 있다. 서블릿에서 클라이언트의 요청 얻기 서블릿/JSP 프로그래밍을 위해서 HTML이나 javascript 내용에 대해 알아두면 좋다. 이 개념을 바탕으로 요청 처리를 해보자. 새로운 프로젝트를 만든다. dynamic 프로젝트로 ..

[Servlet] 서블릿(servlet) 이해하기

서블릿이란 서버에서 실행되다 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에 결과를 전송하며 서버에서 실행되므로 보안과 관련된 기능도 안전하게 수행한다. 즉, 클라이언트의 요청이 오면 기능을 수행하고 그 결과를 웹 브라우저에 돌려준다고 생각하면 된다. 동적으로 여러 기능을 제공하며 스레드 방식과 자바의 객체 지향적 특징을 가진다. 아래 그림은 서블릿 관련 클래스들의 계층 구조이다. Servlet 인터페이스는 Servlet관련 추상 메서드를 선언하며 init(), service() 등을 선언한다. -> javax.servlet ServletConfig 인터페이스는 Servlet 기능 관련 추상 메서드가 선언되어 있다. ->javax.servlet GenericServlet 은 상위 두 인..

[Servlet] Servlet 개발 환경설정, 톰캣 연동, 시작하기

자바를 사용해볼겸 자바에서 많이 사용되는 JSP를 천천히 정리하려고 한다. 먼저 개발환경을 갖추고 JSP에 대해 간단하게 알아보자. 설치할 목록은 아래와 같다. 1. JDK -> 설치하고 환경 변수 설정을 해줘야 한다. cmd창을 열어 아래의 결과를 확인하자. 2. Tomcat 9.0 설치 -> 설치할때, Configuration에서 포트번호와 유저네임 및 비밀번호를 기호에 맞게 적으면 된다. 그리고 JVM 설정엔 JRE 혹은 JDK의 경로를 설정하면 된다. 3. 자바 개발환경인 이클립스를 설치하자. 필자는 ' ... Enterprise JAVA developer' 로 설치하였다. 4. Oracle DBMS 설치 -> Oracle Database 11g Express Edition 버전으로 설치를 진행하..

반응형