전체 글

전체 글

    23. 리스너 종합

    23. 리스너 종합

    진행에 앞서 pom.xml과 web.xml을 수정해야한다. pom.xml은 아래의 의존성을 추가해주자. javax.servlet javax.servlet-api 4.0.1 provided web.xml은 아래처럼 코딩해주자. Archetype Created Web Application ch11.ListenerTestServlet 1️⃣ 리스너 클래스 생성 예제 생성 src/main/java에서 ListenerExam 으로 클래스를 생성해주자. 2️⃣ ServletContext 이벤트 구현 위에서 만든 ListenerExam을 아래와 같이 코딩해주자. import javax.servlet.ServletContextAttributeEvent; import javax.servlet.ServletContextA..

    22. 필터

    22. 필터

    1️⃣ 필터란? 개요 필터는 서블릿 필터라고 하며 웹 어플리케이션을 지원하기 위한 특수한 서블릿이다. 클라이언트 요청에 따라 서블릿이나 JSP가 실행되기전에 request, response객체를 조작이나 추가 처리가 가능하다. 기본적으로 특정 요청에만 작동하며, 여러개의 필터가 정해진 순서에 따라 배치될수 있다. 이때 클라이언트 요청 처리 이전에 먼저 실행된다. 리스너와 마찬가지로 단순히 기능만 구현하는 웹 프로그램의 경우 필터를 만들지 않아도 된다. 하지만 어플리케이션 설계 관점에서 유연하고 효과적인 어플리케이션 구현 및 운영이 필요하다면 필터에 대해 알아둬야한다. 필터는 기존 코드 변경없이 어플리케이션에서 공통적으로 사용할수있는 구현에 사용된다. 활용 분야 인증 : 로그인같은 공통기능을 개별 컨트롤러..

    21. 리스너

    21. 리스너

    1️⃣ 리스너란? 개요 리스너란 컨테이너에서 발생하는 이벤트를 중 특정 이벤트가 발생하면 실행되는 특수한 서블릿이다. 이를 이벤트 리스너라고한다. 웹 어플리케이션 실행에 필요한 정보를 제공하거나 톰캣 시작종료와 같은 특정 상황에 자동으로 동작하는 프로그램을 구현할때 사용한다. 이때 리스너는 서블릿과 마찬가지로 애너테이션 기반 코드로 작성할수있다. 먼저 리스너가 동작하기 위한 이벤트 종류와 프로그램API를 알아야한다. 리스너는 일반적인 형태의 서블릿이 아니다. 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스라고 보면 되겠다. 리스너는 생명 주기 변화와 Scope Object에서 관리하는 속성의 변화를 감지하고 해당 이벤트가 발생되면 실행되는구조다. 클라이언트의 요청에 따라 서블릿을 통해 Sessio..

    20. 뷰 구현

    20. 뷰 구현

    시작 페이지 화면에서 뉴스 목록을 보여주고 뉴스를 선택해 세부내용 보기/삭제를 할수있게 구성할것이다. 뉴스 등록 부분은 별도 페이지로 구성이 가능하나 뉴스 목록 아래에 등록 버튼을 두고 눌렀을때 입력 양식을 보여주고 등록하도록 구성하겠다. 디자인은 부트스트랩을 사용하고 분제 발생시 에러 메시지를 출력하는 부분이 포함되어있다. 데이터 출력은 EL과 JSTL을 사용할것이다. 1️⃣ newList.jsp 기본구조 메인화면으로 뉴스 목록을 보여주는 화면이다. [webapp]에 ch10 폴더 생성후 newsList.jsp를 만들어주자. 그후 부트스트랩에 접속하자. 그리고 CSS와 JS를 복사해주자. 복사한 내용은 뉴스 목록 [${status.count}] ${news.title}, ${news.date} × 에러..

    19. 컨트롤러 구현

    19. 컨트롤러 구현

    1️⃣ Init() 메소드 구현 NewsController 서블릿 클래스를 생성해주자. package ch10; import javax.servlet.*; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.io.IOException; @WebServlet("/news.nhn") @MultipartConfig(maxFileSize=1024*1024*2, location="c:/Temp/img") public class NewsController extends HttpServlet { private static final..

    18. 모델 구현

    18. 모델 구현

    1️⃣ DB 생성 테이블 생성 제목, 이미지, 내용, 등록 날짜와 시간으로 구성되는 뉴스 기사를 구분하기 위해 기본키로 aid 칼럼을 둘것이다. DB는 MariaDB이다. CREATE DATABASE `spring`; CREATE TABLE news ( aid INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, title VARCHAR(50) NOT NULL, img VARCHAR(50) NOT NULL, date TIMESTAMP, content VARCHAR(50) NOT NULL ); 만든 결과는 아래와 같다. 2️⃣ News 클래스 구현 뉴스 데이터 구조를 표현하기 위한 DO 클래스이다. 테이블 구조와 일치해야한다! 하지만 화면에 보이는 날짜와 시간정보를 처리하기 위해..

    17. 뉴스기사 관리 서비스 설계

    17. 뉴스기사 관리 서비스 설계

    1️⃣ 개요 뉴스기사관리 웹 서비스를 만들어볼것이다. 뉴스 DB에 새 뉴스 등록, 조회, 삭제가 가능하게 할것이다. 전체적인 기능 구현이 목적이며, 관리자 페이지를 중심으로 설명할것이다. 이번 프로젝트에서 구현할 내용은 다음과 같다. 부트스트랩을 이용한 화면 구현 DB 연동 뉴스등록(이미지 파일 첨부를 포함) 뉴스 목록에서 등록한 뉴스 확인 뉴스 에러 처리 이번에 만들 프로젝트는 나중에 진행할 프로젝트에서 연계될 예정이니 유의하길 바란다. 2️⃣ 구조 전체 구성요소 DB 모델 뷰 컨트롤러 소스패키지 : ch10 jsp : webapp > ch10 데이터 베이스 H2는 더이상 사용하지 않겠다. 이제부턴 필자의 컴퓨터에 설치되어있는 마리아DB + HeidiSQL 조합으로 사용하겠다. 테이블 명은 news로 ..

    16. JDBC 종합 :  학생정보 조회와 등록

    16. JDBC 종합 : 학생정보 조회와 등록

    진행에 앞서 설정해줘야 할것이 있다. pom.xml에 H2데이터베이스 의존성을 추가해주자. com.h2database h2 1.4.200 test 1️⃣ 모델구현(DO) : Student Student 클래스 [src/main/java] 폴더에 ch09 패키지를 생성 후 Student클래스를 만들어주자. 그리고 아래와 같이 코딩해주자. package ch09; import java.sql.Date; //import java.util.Date; public class Student { private int id; private String username; private String univ; private Date birth; private String email; public int getId() { ..