Dev 90

Spring[Interceptor-Annotation활용]

Spring[Interceptor-Annotation활용] 1. 인터셉터란? Spring에서 HTTP Request와 HTTP Response를 Controller 앞과 뒤에서 가로채는 역할을 한다. Servlet의 앞과 뒤에서 HTTP Request와 HTTP Response를 가로채는 필터와 유사 하다. Interceptor를 구현하기 위해서는 HandlerInterceptor 인터페이스를 구현하여야 한다. 서블릿 필터와 차이 2. 구현실습 1) MyInterceptor 구현 HandlerInterceptor 인터페이스의 3개의 메소드를 구현한다. preHandle() 메소드는 컨트롤러가 호출되기 전에 실행된다. handler 파라미터는 HandlerMapping 이 찾아준 컨트롤러의 메소드를..

Dev/Spring 2021.10.16

Spring [DefaultServlet-ViewResolver-Exception]

Spring[DefaultServlet-ViewResolver-Exception] 01. DefaultServlet Handler 등록 1.1 DefaultServlet 위임 1.1.1 정적 자원 접근 실패 html, css, js 등의 파일 접근에 실패한다. DispatcherServlet 이 모든 URL처리에 서블릿 매핑을 하였기 때문에 톰캣은 정적 자원에 대한 URL처리도 DispatcherServlet에게 넘기기 때문이다. ( 즉, DefaultServlet에 위임을 하지 못한다. ) 실습으로 알아 보자. 1.1.2 Spring MVC 에서 DefaultServlet 위임 처리하기 HandlerMapping이 URL과 컨트롤러의 메소드(핸들러) 와의 매핑 정보를 가지고 있다. HandlerMapp..

Dev/Spring 2021.10.16

Spring @MVC, Data Access, MyBatis

Spring @MVC DATA ACCESS 1. datasource (Connection Pool) JDBC를 통해 DB를 사용하려면, Connection 타입의 DB 연결 객체가 필요하다. 엔터프라이즈 환경에서는 각 요청마다 Connection을 새롭게 만들고 종료시킨다. 애플리케이션과 DB사이의 실제 커넥션을 매번 새롭게 만드는 것은 비효율적이고 성능저하 풀링(pooling) 기법 사용 정해진 개수의 DB Connection Pool에 준비하고 애플리케이션 요청때 마다 꺼내서 할당 하고 돌려받아 pool에 저장. Spring에서는 DataSource를 하나의 독립된 빈으로 등록하도록 강력하게 권장. 엔터프라이즈 시스템에서는 반드시 DB 연결 풀 기능을 지원하는 DataSource를 사용해야 한다. 종..

Dev/Spring 2021.10.15

Spring[Message-Converter]

Spring[Message-Converter] 1. 메시지 컨버터란? XML 이나 JSON을 이용한 AJAX 기능이나 웹서비스 개발에 이용 HTTP 요청 메세지 본문( Request Body ), HTTP 응답 메세지 본문( Response Body )을 통째로 메세지로 다루는 방식 파라미터의 @RequestBody, 메소드에 @ResponseBody를 이용 메세지 컨버터는 AnnotationMethodHandlerAdapter를 통해 하나 이상의 컨버터가 등록, 선택 동작하게 된다. 응답(Response)의 경우 해당 핸들러 메소드에 @ResponseBody 와 함께 반환되는 객체의 종류에 따라 메세지 컨버터가 선택되고 응답바디 내용이 채워져 브라우저로 전달된다. 2. 컨버터 등록 에 mvc:messa..

Dev/Spring 2021.10.15

Spring 자세히 알아보기 DispatcherServlet , MVC

Spring 자세히 알아보기 01.DispatcherServlet 과 MVC 사용자의 요청을 DispatcherServlet이 받는 다. 요청을 처리해야 하는 컨트롤을 찾기 위해 HandlerMapping에게 질의를 하고 HandlerMapping은 컨트롤 객체에 매핑되어 있는 URL를 찾아낸다. DispatcherServlet은 찾은 컨트롤에게 요청을 전달하고 Controller는 서비스 계층의 인터페이스를 호출하여 적절한 비지니스를 수행한다. 컨트롤러는 비지니스 로직의 수행결과로 받아낸 도메인 모델 객체와 함께 뷰이름을 ModelAndView 객체에 저장하여 반환한다. DispatcherServlet은 응답할 View를 찾기 위해 ViewResolver에게 질의를 한다. DispatcherServle..

Dev/Spring 2021.10.15

Spring 시작하기

Spring 1. Spring 이란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 자바 엔터프라이즈 개발 기업 대상 애플리케이션 개발 은행(금융), 네이버, 물류/유통 회사, 병원 .... Future Business 1.2.2 환경과 조건 C/S ( network ) 웹 환경 데이터베이스 분산환경 ( 분산객체, 자원 관리, 컴포넌트 ) 1.2.2 JEE( Java Enterprise Edition ) Servlet/JSP, JDBC, EJB, RMI, JNDI, JTA, JMS ... 프레임워크( Framework ) 정의 소프트웨어를 만드는 데 기본이 되는 골격 코드 반제품 완전한 애플리케이션 소프트웨어가 아니다. 문제 영역(도메인)을 해결하기 위한 잘 설계된 재사용..

Dev/Spring 2021.10.15

Servlet & JSP 기초 알아가기 2

JSP 코드 설명 JSP 코드는 HTML 페이지와 비슷하고 부분적으로 Java 코드를 포함한다. 하나 이상의 Java 문장을 포함하는 스크립틀릿(scriptlet)을 작성하기 위해서 태그를 사용한다. 문자열로 변환되는 표현식(expression)을 출력하기 위해서 태그를 사용한다. JSP 페이지 안에서 암묵적인 요청 객체(implicit request object)를 사용할 수 있고, request 라고 불린다. When you code a JSP, you can use the implicit request object. This object is named request. request 객체의 getParameter 메소드는 JSP로 전달되는 파라미터의 값을 얻는데 사용된다. 스크립틀릿(scriptle..

Dev/Servlet&JSP 2021.10.12

Servlet & JSP 기초 와 실습(MVC 2)

Model 2 아키텍처 –주로 복잡한 요구사항을 처리하는 웹 애플리케이션에서 MVC(Model-View-Controller pattern) 패턴을 사용한다. MVC 패턴은 코딩과 유지보수를 쉽게 하고, Model 2 아키텍처라고도 불린다. –MVC 패턴에서의 모델(model)은 자바빈즈로 구성되고, 뷰(view)는 JSP, 그리고 컨트롤러(controller)는 서블릿으로 구성된다. –DAO 클래스와 같은 데이터 클래스의 메소드는 데이터 저장소의 데이터를 조회하거나 저장하는데 사용된다. –MVC 패턴을 사용할 때는 가능한 한 각 레이어를 독립적으로 구성해야 한다. 그래야만 하나의 레이어를 수정하더라도 다른 레이어에 미치는 영향을 최소화 할 수 있다. 이론 요청 리다이렉트 – 문법 response.send..

Dev/Servlet&JSP 2021.10.08

Servlet & JSP 기초 와 실습(MVC 1)

JSP가 뭘까? 코드를 보며 설명하겠다. JSP 코드 Thanks for joining our email list Here is the information that you entered: First name: Last name: 위 코드를 보면 마치 HTML 코드를 보는것 같다. 하지만 다르다. 여기 ~~.jsp 에 작성된 문법들은 객체화 되어 Servlet으로 들어간다고 생각하면된다. 어떤느낌인지 알기 위해 서블릿 코드를 보자 public class EmailServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletExcep..

Dev/Servlet&JSP 2021.10.08

JDBC 처음부터 끝까지 사용해 보기(proj-Bookmall)-2

https://github.com/stpn94/mariadb-practices/tree/master/jdbc-practices/src/main/java/bookmall - bookmall VO DAO TEST 들이 있는 git 주소 https://github.com/stpn94/mariadb-practices/tree/master/jdbc-practices 이거는 SQL TEST한것과 워크벤치로만든 ERD가 있다. JDBC 필자는 maven을 써서 프로젝트를 만들었다. pom.xml에 디펜던시를 추가했다. org.mariadb.jdbc mariadb-java-client 2.7.2 JUnit을 사용해서 TEST 안해서 test패키지않에 main으로 test 한다. 요구사항 회원 리스트 – 2명 출력은 이..

Dev/Java 2021.10.07