전체 글 250

[2023.1.6.금] 스프링 MVC 웹 애플리케이션 3 (로그인, 내정보 조회)

* 의존성 관계 - 스프링 컨테이너가 객체 생성 + 의존성 관계 분석해서 조립까지 해줌 - ContextLoaderListener 가 만드는 스프링 컨테이너, DispatcherServlet 이 만드는 스프링 컨테이너 * 개발자가 해야할 일 1) 매핑정보 (어떤 요청 URI로 받을지 결정) ( @PostMapping("/register") ) 2) 메소드 생성 3) 매개변수를 뭐로 받을지 결정 4) 반환타입 결정 Controller의 요청핸들러 메소드 @PostMapping("/login") public String login(String id, String password) 요청핸들러 메소드의 매개변수가 기본자료형 혹은 String 인 경우 매개변수의 이름과 동일한 이름으로 요청파라미터 값을 조회해서 ..

수업내용/Spring 2023.01.06

[2023.1.5.목] 스프링 MVC 웹 애플리케이션 2 (조립, 회원가입, 예외처리)

1. 컨트롤러, 매퍼, 서비스 연결 주소창에 다 입력하기 싫을 때 서버에서 프로젝트 제거!! -> 프로젝트 -> properties -> web project settings -> '/'로 변경 -> localhost/home 만 입력해도 됨 (원래는 localhost/spring-web/home) * web.xml에 태그 라이브러리 jsp파일이 모든 jsp 파일에 추가되도록 정의 Q. navbar.jsp와 tags.jsp의 include 방식이 다른 이유 tags.jsp는 맨위에 들어가면 되지만 navbar.jsp는 위치가 정해져 있음 * navbar.jsp - 내비게이션 바 * tags.jsp - el, jstl을 사용할 수 있는 태그, 날짜포맷을 사용할 수 있는 태그 등등 * HomeControll..

수업내용/Spring 2023.01.05

[2023.1.4.수] 스프링 MVC 웹 애플리케이션 1 (준비, 환경설정)

스프링 MVC 흐름 1 * 스프링에서는 mvc 웹 애플리케이션을 개발하기 위해서 DispatcherServlet 클래스를 제공함 - DispatcherServlet : 클라이언트 요청 접수 -> 컨트롤러 검색 (스프링 컨테이너에서 해당 요청을 처리할 컨트롤러 가져옴) -> 요청핸들러 메소드(execute 메소드) 실행 -> 반환 URL 전송 - Controller : 서비스에 의존 -> 서비스의 업무로직 실행시킴 -> 요청 처리(요청파라미터값 처리, 폼 입력값 유효성 검증, 업무로직 실행, 뷰에 표현할 데이터 담기) -> 뷰이름/재요청 URL 반환 - Service : Mapper 인스턴스에 의존 -> 핵심 업무 로직 수행 (DB 액세스 작업) -> 뷰에 표현할 데이터 반환 - Mapper 인스턴스 : ..

수업내용/Spring 2023.01.04

[2023.1.3.화] mybatis로 데이터베이스 액세스, 다이나믹 쿼리

mybatis로 데이터베이스 액세스 하기 0. mybatis 프로젝트 생성 new -> project -> maven project 1. 필요한 라이브러리 의존성 추가 *spring-mybatis/pom.xml 4.0.0 com.sample spring-mybatis 0.0.1-SNAPSHOT 11 11 1.7.25 org.springframework spring-context 5.3.24 org.springframework spring-jdbc 5.3.24 org.mybatis mybatis 3.5.11 org.mybatis mybatis-spring 3.0.1 com.oracle.database.jdbc ojdbc11 21.8.0.0 ch.qos.logback logback-classic 1.2.3 ..

수업내용/Spring 2023.01.03

[2023.1.2.월] jdbc, mybatis를 이용한 스프링 데이터베이스 액세스

스프링과 데이터베이스 액세스 스프링의 데이터베이스 액세스 작업은 jdbc 연동, ibatis/mybatis 연동, JPA/hibernate 연동 등 다양한 데이터베이스 액세스 기술과 연동해서 데이터베이스 액세스 작업을 구현할 수 있다. 스프링의 데이터베이스 액세스 작업 특징 다양한 데이터베이스 액세스 라이브러리와의 연동을 지원한다. (jdbc, ibatis/mybatis, JPA/hibernate 등) 일관된 데이터베이스 액세스 예외처리를 지원한다. 모든 데이터베이스 액세스 오류에 대해서 DataAccessException 예외를 발생시킨다. DataAccessException 클래스는 RuntimeException의 하위클래스여서 예외처리를 강제하지 않는다. 데이터베이스의 종류와 상관없이 오류 상황에 ..

수업내용/Spring 2023.01.02

[2022.12.30.금] 스프링의 의존성 주입

스프링의 의존성 주입 1. 수동 의존성 주입 애플리케이션 실행에 관여하는 객체를 스프링 컨테이너가 생성하게 한다. * 실행객체 package com.sample.app; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.sample.post.controller.PostController; public class App2 { public static void main(String[] args) { // 스프링 빈 설정파일의 경로 String resource = "spring/context-2.xml"; //..

수업내용/Spring 2022.12.30

[2022.12.29.목] 스프링 DI(의존성주입), AOP(관점지향), Maven

스프링 오픈소스 프레임워크 오픈소스 : 라이센스 무료, 가공/수익창출 허용 프레임워크 : 특정한 아이디(개발방식, 개발패턴, 아키텍처)의 구현체 - 라이브러리와 프레임워크 * 라이브러리 : 개발에 필요한(자주 사용되는) 기능의 구현체 필요한 기능이 구현되어 있는 라이브러리를 다운받아서 그 라이브러리의 기능을 사용한다. * 프레임워크 : 개발방식, 개발 패턴의 구현체 (ex. ibatis) 해당 프레임워크에서 제시하는 방식에 맞게 클래스나 인터페이스, 환경설정 정보를 구성하면 프레임워크가 제공하는 기능을 제공받을 수 있다. Java 기반의 엔터프라이즈 애플리케이션 개발을 지원하는 프레임워크 DI(의존성 주입)의 구현체 의존성 주입은 스프링의 가장 핵심적인 기능이다. 인터페이스를 이용해 클래스와 클래스 간의..

수업내용/Spring 2022.12.29

[2022.12.28.수] model2로 할 일(Todo) 실습

* Todo 객체, Category(할일 카테고리) 객체 * FrontController에 URI와 컨트롤러 매핑 * navbar.jsp에 할일 경로 추가 * todo.xml insert into web_todos (todo_no, todo_category_no, todo_title, todo_user_id, todo_begin_date, todo_end_date, todo_description) values (web_todos_seq.nextval, #categoryNo#, #title#, #userId#, #beginDate#, #endDate#, #description#) select count(*) from web_todos where todo_status not in '삭제' select tod..

수업내용/Spring 2022.12.29

[2022.12.27.화] model2로 댓글(comment) 실습

3. 댓글 등록, 삭제 - 게시글 번호, 로그인한 사용자 정보 등이 필요함 * comments.xml select C.comment_noas no, C.comment_user_idas userId, U.user_nameas userName, C.comment_contentas content, C.comment_created_dateas createdDate, C.comment_post_noas postNo from web_comments C, web_users U where C.comment_post_no = #value# and C.comment_user_id = U.user_id order by C.comment_no asc select comment_noas no, comment_user_idas ..

수업내용/Spring 2022.12.29

[2022.12.26.월] model2로 사용자(user), 게시물(post) 실습

컨트롤러, jsp 흐름을 보기 화면 요청 -> jsp를 응답으로 insert, delete, update -> redirect를 응답으로 (재요청은 항상 hta로 요청) 하나씩 차례대로 실습해보기 1. 사용자 회원가입, 로그인, 로그아웃 * web.xml frontControllerServlet com.sample.model2.FrontControllerServlet frontControllerServlet *.hta 500 /WEB-INF/views/error/500.jsp 404 /WEB-INF/views/error/404.jsp * Controller 인터페이스, FrontController * navbar.jsp * 홈 HomeController , home.jsp -----------------..

수업내용/Spring 2022.12.29