Web Programming/Spring

    10. Spring 로그인 만들기를 통한 기능 엿보기

    인터셉터란? 컨트롤러에 들어오는 요청 과 응답을 가로채는 역할을 합니다. Filter와 비슷한 역활을 하지만 약간의 차이가 존재합니다. 가장 큰 특징으로는 호출되는 시점 차이로 Filter는 DispatcherServlet이 실행되기 전 , Interceptor는 DispatcherServlet이 실행된 후에 작동 합니다. 1. 인터셉터의 선언 DispatcherServlet 역활을 하는 servlet-context.xml 에서 인터셉터를 선언합니다. 2. 인터셉터의 생성 인터셉터는 HandlerInterceptorAdapter 를 상속받아 생성합니다. 인터셉터 안에는 preHandle , postHandle , afterCompletion 이 있으며 각각 다른 기능을 합니다. preHandle : Co..

    9. Spring 로그인 만들기를 통한 기능 엿보기

    Session 과 Cookie 란? HTTP 프로토콜은 사용자와 서버의 관계를 유지하지 않습니다. 이때 연결이 끊기더라도 지속적으로 유지하기 위하여 쿠키와 세션이라는 방식을 제공 합니다. 가장 큰 특징으로는 쿠키는 사용자측에 데이터를 남기고 세션은 서버 측에 데이터를 저장합니다. 1. Session 선언 세션을 사용하기 위해선 HttpSession 을 이용해야하며, setAttribute를 통하여 값을 담아 줍니다. 2. Session 종료 세션은 생성후 invalidate 메서드를 만나게 되면 삭제 됩니다. 3. Session을 이용한 계정 정보 관리 기존의 계정 정보는 중요한 정보이므로, 서버에 데이터를 관리하는 세션으로 구성하는 것이 좋습니다. 로그인 시 session.setAttribute( "세..

    8. Spring 로그인 만들기를 통한 기능 엿보기

    이번엔 데이터베이스와 연결하는 DAO와 작성을 할 예정입니다. 또한 Insert 뿐 아니라 나머지 기능도 구현 할 예정입니다. 1. 테이블 생성 테스트를 위한 데이터 베이스에 테이블을 생성합니다. ( Oracle 11g ) 2. 데이터베이스 연동을 위한 라이브러리 선언 데이터베이스와 연결을 위해 pom.xml에 외부 저장소 선언과 라이브러리 선언을 해주어야 합니다. 3. DAO(Data Access Object)의 생성 다음으로는 데이터 베이스와 자바를 연결하는 DAO를 생성합니다. 4. Form을 이용한 데이터 송신 확인 데이터베이스와 연결이 완료되었다면, Join Form을 이용하여 Insert가 정상적으로 구동하는 것을 확인 할 수 있습니다. 이를 토대로 Login 시 Select 구문으로 만들겠습..

    7. Spring 로그인 만들기를 통한 기능 엿보기

    이전에 화면을 담당하는 View와 이동을 담당했던 Controller를 만들었다면, 이번엔 기능을 담당하는 Service를 만들 예정입니다. 1. DTO 객체 생성 회원가입을 할때, Member의 속성을 선언 후, Getter & Setter 로 외부에서 쓸 수 있게 만들어 줍니다. 2-1 . View에서 값을 가져오는 방법 (HttpServletRequest) 스프링에서는 View 페이지에서 Controller로 값을 가져오는 방법은 크게 3가지 방법이 있습니다. Form의 name 속성을 기준으로 가져옵니다. 2-2 . 스프링 어노테이션을 이용하는 방법 (@RequestParam) Form의 name 속성을 기준으로 가져옵니다. 2-3 . 커멘드 객체를 이용하는 방법 스프링에서 제공하는 Model 이..

    6. Spring 로그인 만들기를 통한 기능 엿보기

    정상적으로 스프링 프로젝트가 실행되는것이 확인 되었다면, 간단한 로그인기능을 만들어 보려고 합니다. 1. 한글처리 처음 프로젝트를 실행하면 Hello World 와 함께 날짜가 깨져서 나오는 것을 확인 할 수 있습니다. 이를 해결하기 위해 기존에 web.xml 파일을 수정해주어야 합니다. 위와같이 web.xml 안에 인코딩 필터를 선언하면 깨지지 않고 정상적으로 출력되는 것을 확인 할 수 있습니다. 2. index.jsp 추가 Spring 프로젝트를 처음 생성하게 되면 views 폴더 안에 있는 home.jsp가 실행됩니다. 일반적으로 웹 사이트 생성 시, index.jsp 혹은 index.html 이 실행하도록 약속되어 있습니다. 프로그램 실행 시 첫 페이지로 만들기 위해 web.xml에 아래와 같은 ..

    5. Spring 프로젝트의 구조 분석

    스프링 프로젝트를 만들면 아래와 같이 생성 됩니다. 구조에 대하여 하나하나씩 살펴봅니다. 1. Spring 프로젝트를 구동 후 모든 URL 접근시 " / " DispatcherServlet 으로 이동합니다. 2. Component-Scan 을 통하여 검색할 패키지를 우선적으로 선택합니다. 사용자가 요청을 하면 @RequestMapping을 통하여 필요한 메서드를 호출 합니다. 3. login으로 사용자가 요청 시, Controller의 @RequestMapping을 찾아 return합니다. 4. return은 InternalresourceViewResolver 를 통해서 prefix{return값}suffix 로 구성되어 View 페이지로 이동됩니다. /WEB-INF/views/login.jsp 를 찾습..

    4. Spring 웹 프로그래밍 설계 모델

    MVC(Model1) JSP , Service & DAO 가 혼재되어 있어 모듈화가 되어있지 않습니다. 개발 속도가 빠르지만, 코드가 혼재되어 있어 유지보수 측면에 어려운 점이 있습니다. MVC(Model2) 서비스를 제어하는 Controller - Model( Server & DAO ) - View 로 각각의 기능을 모듈화 해줍니다. 대부분의 웹 서비스는 위와 같이 Model2 혹은 Spring의 Model2를 지양합니다. Spring MVC 프레임 워크 1. DispatcherServlet 으로 모든 요청이 들어옵니다. 2. HandlerMapping 을 통해 알맞은 컨트롤러 선택합니다. (설정 후 자동 처리) 3. HandlerAdapter 적합한 메서드를 찾아줍니다. (설정 후 자동 처리) 4. ..

    3. Spring 어노테이션 Autowired, Resource, Inject

    어노테이션이란? 클래스나 메서드 , 속성 등에 @ 를 선언하여 사용하는 것입니다. 그 중 의존 객체 자동 주입(Automatic Dependency Injection) 에 속하는 Autowired, Resource, Inject 를 사용하려면 구문을 꼭 xml 설정파일에 추가해주어야 합니다. 스프링 설정파일에서 혹은 태그로 의존 객체 대상을 명시하지 않아도 스프링 컨테이너가 자동적으로 의존 대상 객체를 찾아 해당 객체에 필요한 의존성을 주입하는 것을 말한다. 만약에 생성자가 아닌 다른 곳에서 어노테이션을 사용할 경우 기본 생성자를 만들어야 합니다. @Autowired Autowired 는 속성, Setter, 생성자에 모두 사용 가능 하며 , 주입하려는 객체타입이 일치하는 객체를 자동으로 주입됩니다. 만..

    2. Spring DI(Dependency Injection)

    DI(Dependency Injection)란? 문자 그대로 의존성을 주입시킨다는 의미입니다. 객체를 직접 생성하는게 아니라 외부에서 생성한 후 주입을 시켜주는 방식입니다. 사실 Spring에서 나온 개념이 아닌 Java에서도 존재하였지만, Spring에서 좀 더 체계화 되었습니다. Java에서도 Battery 라는 객체를 새로운 객체인 Robot, Phone, Laptop 이라는 객체로 주입할 수 있습니다. package lesson02_DI_Basic; import lesson02_DI_Basic_Battery.Battery; import lesson02_DI_Basic_Battery.ChargedBattery; import lesson02_DI_Basic_Battery.UnChargedBattery..

    1. Maven 의 개요 및 스프링의 이해

    Maven 이란? 메이븐은 Apache Project 중 프로젝트의 라이브러리를 관리하는 기능을 합니다. 기존에는 라이브러리를 다운받아서 이클립스에서 WEB-INF/lib 안에 라이브러리를 추가해서 사용하였으나, 관리에 어려움이 있었습니다.메이븐을 사용할 경우, Pom.xml 파일에 라이브러리 명칭을 선언해주면 자동으로 찾아서 추가해줍니다. pom.xml 파일에 선언을 하면 아래 경로로 외부 라이브러리가 다운로드 됩니다. {C:\Users\사용자}\.m2\repository 우클릭 > New > Other > Maven 검색 후 Maven Project를 선택합니다. Create a simple project를 선택 후 Next 를 클릭합니다. Group Id와 Artifact Id는 필수로 입력해주어야..