IT 강의 정리/윤재성의 스프링 MVC5 9

[섹션8][미니프로젝트-게시판관리] 55~63강(완)

55. 글 작성하기1 로그인한 사용자가 게시글 작성기능 구현하기. 1. 글쓰기 버튼 클릭시 주소창에 인덱스 번호 나타내기 로그인을 하고, 자유게시판을 클릭해보면 주소창에 인덱스번호가 나타난다. 그런데 글쓰기를 누르면 인덱스번호가 나타나지 않는다. 어떤 게시글에서 작성한 글인지 알아야 데이터를 저장할 수 있기 때문에, 파라미터로 전달 될수 있도록 세팅하자. BoardController에서 @RequestParam으로 board_info_idx받아오고, board/main.jsp에 아래와 같이 수정하기 2. write.jsp에 폼 커스텀태그 세팅하기 & BoardController에 writeContentBean주입받기 write.jsp에 modelAttribute 추가하기. BoardController에 ..

[섹션7][미니프로젝트-회원관리] 48~54강

48. 회원가입 - 유효성 검사 처리 1. join.jsp에서 form 태그를 스프링에서 제공하는 커스텀태그로 변경하기 커스텀태그라이브러리 추가 - 수정 전 이름 아이디 중복확인 비밀번호 비밀번호 확인 회원가입 - 수정 후 action을 user/join_pro 로 바꾸고 modelAttribute="joinUserBean"도 추가 form:label, form:input, form:errors 로 변경 이름 아이디 중복확인 비밀번호 비밀번호 확인 회원가입 2. 컨트롤러에서 join메소드의 매개변수 joinUserBean 넣어주기 join.jsp에 modelAttribute="joinUserBean" 이라고 등록을 했으므로 아래와 같이 UserController에서 join메소드에 "joinUserBea..

[섹션6][미니프로젝트-상단메뉴구성] 46~47강

46. 상단 메뉴 구성하기(Java) 데이터베이스에서 게시판 이름들을 가져와 메뉴를 구성해보자. 상단 메뉴는 모든 요청에 대해 처리해야 하므로, Interceptor에서 처리시켜야 한다. 1. 이렇게 쿼리문을 구성해보자. 2. 만든 쿼리문 복사해서 TopMenuMapper인터페이스 생성 & ServletAppcontext에 추가 3. 실제로 데이터베이스에 접속해서 작업을 실행시킬 dao클래스를 만들기 & 만든TopMenuMapper인터페이스 주입받기 4. 만든 dao클래스를 또 service에 주입받기! 5. 인터셉터 만들기 & ServletAppcontext에 추가 이렇게 서비스까지 만들었으니 컨트롤러에서 서비스를 주입받아 사용하면 되는데, 지금 우리는 상단메뉴를 구성해야 하는데, 상단메뉴는 어떤 주소..

[섹션5][미니프로젝트 소개 및 세팅] 40~45강

40. 미니프로젝트 게시판 4개, 게시판당 상위 5개 게시글 표시, 더보기, 로그인, 회원가입, 정보수정, 글쓰기, 첨부파일 업로드 등의 기능을 넣고 게시판을 작성해보자. 41. Spring MVC 프로젝트 구조 클라이언트 요청 발생 → 서버는 요청정보 분석하여 컨트롤러로 전달 → 필요한 작업을 해주는 서비스의 메소드로 전달 (만약 서비스의 메소드 중에서 데이터베이스와 관련된 코드가 있다면 DAO클래스를 만들어 호출시킴) → 컨트롤러는 서비스의 메소드가 전달해준 값을 받아서 브라우저로 전달 @Bean : 메서드를 통해 반환하는 객체를 Bean으로 등록합니다. @Component : 개발자가 만든 클래스의 객체를 생성하여 Bean으로 등록합니다. @Controller : Component의 일종으로 사용자..

[섹션4][Spring MVC 인터셉터와 MyBatis] 34~39강

34. Interceptor Spring Framework강좌에서 AOP를 배웠었다. 스프링프레임워크에서 어떤 메소드를 감시하고 있다가 그 메소드를 호출할 때 그 메소드가 동작되는게 아니라 그 메소드의 호출을 가로채가서 다른 메소드를 호출하는 개념이 AOP이다. 그 AOP를 Spring MVC에서 적용한 요소가 Interceptor이다. Interceptor는 요청주소에 대해 관심을 갖고 요청이 발생하게 되면 요청주소를 확인하여 컨트롤러의 메소드를 호출하기 전이나 후에 다른 메소드를 호출할 수 있도록 가로채가는 개념이다. 요청 발생 시 호출되는 메소드의 코드가 중복되는 부분이 있을 때 인터셉터를 통해 처리하면 중복을 최소화할 수 있다. 로그인 여부 확인, 등급별 서비스 사용권한 확인 등의 작업을 처리할 ..

[섹션3][Spring MVC의 유효성 검사] 27~33강

27. Properties 어플리케이션을 개발할 때 프로그램 실행 중 절대 변하지 않는 값들이 있을 수 있다. 매우 중요한 개념이다. 예를들어, 데이터베이스 접속정보나 업로드폴더경로 등등.. 이러한 값들을 여러군데에서 중복 사용한다면 수정할 때도 여러 코드를 수정해야 하는 번거로움이 있다. 이런 번거로움을 덜기 위해 Properties라는 개념이 있다. 변하지 않는 값들을 properties파일에 작성하고 이를 가져다 사용할 수 있다. 1. 먼저, 아래처럼 data1.properties 파일을 만들어준다. properties파일을 작성해보자. 그런데 이때 Properties파일에 한글을 작성하면 아래와같이 유니코드문자형태로 변환이 된다. 이러면 유지보수에 어렵다. Property Editor설치로 해결이..

[섹션2][Spring MVC에서의 Bean관리] 20~26강

20. RequestScope 브라우저에서 새로운 요청이 발생하면, 브라우저는 서버에 요청에 관련된 정보를 전송한다. 이를 받은 서버는 브라우저가 보낸 요청 정보들을 보관하기 위해 HttpServletRequest객체를 생성해 요청 정보들을 담아둔다.그 요청정보가 담겨있는 HttpServletRequest객체는 응답결과가 브라우저로 전송될 때까지 유지되며 사용이 가능하다.새로운 요청이 발생해 응답결과가 브라우저로 전달 될 때까지요청정보가 담겨있는 Request객체를 사용할 수 있는데, 이 사용 범위를 RequestScope라고 부른다. 이 HttpServletRequest객체는 서버개발자가 필요에 의해 데이터나 객체를 저장할 수 있고 RequestScope내에서 사용이 가능하다. 하나씩 살펴보자. 1. ..

[섹션1][Spring MVC의 다양한 기능들] 10~19강

10. URL Mapping Servlet / JSP URL 주소 - URL주소 : 사용자가 서버에 접속해서 서비스를 받기 위해 입력하는 주소 - URL주소 구성 : 프로토콜://도메인주소(IP)/포트번호/경로1/경로2/경로3/... - 프로토콜 : 서버와 클라이언트간의 통신을 위한 약속 (생략시 http) - 도메인주소(IP주소) : IP주소는 같은 네트워크 망에서 컴퓨터를 구분하기 위해 제공되는 숫자로 구성된 고유 주소. - 포트번호 : 1~65535 번까지 구성된 숫자. 컴퓨터 내에서 프로그램을 구분하기 위해 사용한다.(생략시 80) - 경로1/경로2/경로3..: 이 부분은 서버 혹은 개발 방식이나 분야에 따라 다르게 해석된다. Servlet/JSP에서 첫번째 경로는 Context Path라고 부른..

[섹션0][Spring MVC 소개 및 프로젝트 세팅] 1~9강

1. Spring MVC 소개 서블릿API를 기반으로 만들어졌으며 스프링이 가지고 있는 다양한 기능들을 이용해서 웹 어플리케이션을 개발할 수 있도록 만들어진 웹 프레임워크이다. Spring MVC에는 웹 어플리케이션 개발을 위한 다양한 라이브러리가 포함되어 있다. 공식이름은 Spring Web MVC이지만 보통 Spring MVC라고 부른다. 본 과정은 스프링 프레임워크5버전으로 진행된다. SpringMVC 개발방식은 SpringFramework와 동일하게 xml을 이용한방법과 자바어노테이션을 이용한 방법을 사용한다. Servlet / JSP + Spring MVC Library 2. 설치할 프로그램 스프링MVC 프로젝트 자체가 자바언어 기반의 웹 어플리케이션을 개발하는 서블릿/JSP 프로젝트에, 스프링..