공부/Spring 복습 24

input태그와 DTO(vo)를 이용한 자동주입(커맨드 객체)

게시판에 대한 공부를 하던도중 자동주입이라는 기능을 알게되어 한번 사용법에 대해 정리해두려고 한다. 학원에서 스프링을 배우기전에 미리 예습하기위해 인프런에서 들었던 강의에 있던 내용인데 프로젝트를 시작할떄에는 잊어버리고 학원에서 배운대로만 진행해버렸다..ㅎㅎ;; input태그와 DTO(vo)를 이용한 자동주입은 스프링에서 지원하는 커맨드 객체라고 부른다고 한다. 일단 시작하기전에 커맨드 객체를 사용하기전의 전과 후를 비교해보자! [커맨드 객체 사용전] 커맨드 객체를 사용하기 전에는 HttpServletRequest의 getParameter()를 이용하여 값을 추출하여 boardVO객체에 setter를 이용하여 값을 넣어주는 방식을 사용하였다. 지금은 넣어줘야할게 3개뿐이지만 이게 길어진다면... [커맨드..

날씨 데이터를 가져와 날씨 정보 띄우기 1.

프로젝트중 날씨 api를 사용하게되어 그 사용한 코드에 대한 간략한 정리와 필요한 라이브러리를 정리하여본다. 사진에는 주석이 코드 위에 달려있어 설명이 보기 편하나 주석의 색이 어두워 안보일수 있음으로 밑에 글로도 달아둔다. 글쓴이도 아직 공부를 다 마친것은 아니나 최소한의 정보를 정리해두기 위해서 글을 작성한다. [getStringFromURL()] 메서드는 원하는 데이터값(요청형식, 발표일자 등...)을 지닌 URL값으로 기상청 API를 호출하여 원하는 정보를 JSON 형식으로 값을 받아온다. 1. URL객체를 생성해준다. 매개변수 url에는 경로와 GET식이기에 보내야 할 값들이 들어있다. 2. 받아온 json형식의 데이터를 Buffer을 이용하여 받아준다. #HttpURLConnection 에 대..

cookie를 통하여 컬럼명 클릭시 정렬 순서 바꿔보기

컬럼명을 클릭시에 cookie로 값을 전하여 정렬순서를 바꾸는 문제이다. 쿠키를 통해 값을 전달하여 employees테이블의 컬럼 클릭시 정렬 순서가 바뀐다. [getCookie()]쿠키의 값이 null인지 아닌지를 판단하여 null값이 아니라면 쿠키의 값을 리턴하여주는 메서드이다. [post_pass()] Get,Post 방식으로 들어오는 값을받는다. (둘다 값을 받는 이유는 PostMapping을 이용해도되지만 연습 문제인만큼 배열형식으로 사용할수 있다는것을 잊지않기위해 사용해보았다.) 쿠키와 클릭된 테이블의 컬럼값을 받아 Get방식으로 다시 리턴하여주는 메서드이며 처음 post방식으로 전송하여 받아내는 이유는 주소에 노출되는 정보를 막을수 있기 때문이다. 쿠키의 값이 null이 아니면서 쿠키를 통해..

Employees 테이블을 출력해보기(mybatis사용 전, 후)

Spring Framework 4버전 사용. Oracle Database 18c 버전 사용. 사용 라이브러리 lombok. jstl. HikariCP. Mybatis. Mybatis - Spring. 라이브러리 적용법에 대한 링크(아직 작성 전.) 스프링 프레임워크를 이용하여 데이터베이스의 HR계정에있는 Employees테이블을 출력하여보자! (이때에 모든 컬럼을 출력하기보다는 보기좋게 원하는 컬럼 몇가지만 출력해보자) EmployeeDto 클레스를 만들어 getter와 setter을 만들어준다. (lombok 라이브러리를 이용하였기 때문에 @Data어노테이션만 붙여준다면 자동으로 생성된다.) ※ MYBATIS 사용전 #클래스명 위의 @RequestMapping() 을 적어주면 클레스 내에서 공통적으로 ..

리다이렉트, 인터셉트

컨트롤러에서 뷰를 분기하는 방법과 컨트롤러 실행 전/후에 특정 작업을 가능하게 하는 방법에 대해서 학습한다. #리다이렉트 (지금의 페이지에서 특정 페이지로 전환하는 기능) 예를들어 클라이언트가 회원정보 수정 요청을하고 회원인증을 거쳐 회원정보 수정 페이지로 유도되야하는데 회원인증이 안되어있다면 메인 페이지(특정 페이지)로 유도하는 기능이다. #인터셉트 리다이렉트가 빈번하게 발생할 경우 굉장히 번거롭기때문에 아예 컨트롤러가 시작 전후로 인터셉트하여 먼저 검증한다. DispatcherServlet이후 HandlerInterceptor(인터페이스)가 가로첸다 HandlerInterceptor는 3개의 메소드로 구현될수있고 preHandle(), postHandle(), afterCompletion() 이 있다..

세션, 쿠키

세션과 쿠키는 클라이언트와 연결을 유지하는 방법이다 세션과 쿠키를 이용하여 클라이언트와 서버가 연결을 유지할 수 있다. # Connectionless Protocol 웹 서비스는 HTTP프로토콜을 기반으로 하는데, HTTP프로토콜은 클라이언트와 서버의 관계를 유지 하지 않는 특징이 있다. (사람과 사람이 통신할때 서로 이해할 수 있는 언어, 공용된 언어를 사용해 전세계 모든 사람과 대화 할수 있다라고 하면, 컴퓨터와 컴퓨터도 서로 이해 할 수 있는 언어, 공용된 언어를 사용 해야 한다는 것인데 이 것을 바로 프로토콜 이라고 한다) 클라이언트가 서버에 무언가를 요청하면 순간적으로 클라이언트와 서버가 연결이되어진다 연결된 순간에 요청한 무언가를 응답해주고 바로 연결을 해제한다. (이렇게 하는 이유는 서버에 ..

Controller 객체 구현 2.

# @ModelAttribute @ModelAttribute를 이용하면 커멘드 객체의 이름을 변경할 수 있고, 이렇게 변경된 이름은 뷰에서 커멘드 객체를 참조할 때 사용된다. 모델 어트리뷰터가 적용된 메서드는 어떤 메서드가 호출되어도 같이 나온다. 예)servertime(시간을 표기하여준다)을 가지고 모델 어트리뷰트를 적용해준다면 다른 메소드와 함께 시간이 표기된다 # 커맨드 객체 프로퍼티 데이터 타입 커맨드 객체에 들어오는 데이터는 원하는 데이터를 지정해주면 스프링 MVC프레임 워크가 알아서 적당히 데이터를 맞춰준다고 한다. 예를 들어 배열이 아닌것을 배열로 받고싶다 할때에 배열로 만들어두면 알아서 데이터를 맞춰 배열로 들어오게 해준다. # Model & ModelAndView 컨트롤러에서 뷰에 데이터..

Controller의 여러가지 기능들

스프링은 설정만 제대로 해준다면 기능구현은 그렇게 어렵지 않기때문에 처음 설정을 잘 해주도록 하자. # 다시 기억하기 1. 자바파일 밑에 컨트롤러,dao,서비스 객체 2. webapp의 resources/html파일에 웹 컴포넌트 파일 3. spring밑에는 spring설정파일 4. Views 밑에는 JSP 컴포넌트 파일 @RequestMapping RequestMapping 메핑 HTML페이지에서 여러 정보들을 받고 버튼을 누르는 순간 action에 있는 url을 찾아서 가는데 method="post" 방식으로 서버에 날아간다 HandlerMapping 빈이 알맞는 Controller을 찾고 HandlerAdapter가 알맞는 메서드를 찾아서 실행시켜준다. #value ,method → 보내는곳 @Re..

Service & Dao 객체 구현

회원 로그인하는 기능을 구현해보자 사용자요청 → 프론트 컨트롤러 → 컨트롤러 → 서비스 → DAO → Database ↓ 뷰 서비스와 Dao객체를 알아보자! 1. 프로젝트 만들기 레거시 프로젝트에 들어가 spring mvc project를 생성해준다. 2.한글처리 web.xml 파일에 들어가서 맨밑에 넣어준다( 위에 붙여넣어주면 된다) CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true CharacterEncodingFilter /* 3. 서비스 객체 구현 방법 1 : new 연산자를 이용한 service객체 생성 및 참조 MemberService serv..

스프링 MVC웹 서비스 2

1. java파일 : java파일들이 위치한다. 주로 패키지로 묶어서 관리한다. 웹 애플리 케이션에서 사용되는 Controller, Service, DAO객체들이 위치한다. 2. webapp : 웹과 관련된 파일들(스프링 설정파일, JSP파일, HTML파일 등..)이 위치한다. 3. resources : JSP파일을 제외한 html, css, js파일등이 위치한다. 4. spring폴더 : 스프링 컨테이너를 생성하기 위한 스프링 설정파일이 위치한다. 5. views 폴더 : View로 사용될 JSP파일이 위치한다. 6. pom.xml파일 : 메인 레파지토리에서 프로젝트에 필요한 라이브러리를 내려받 기 위한 메이븐 설정 파일 # web.xml 웹 어플리케이션에서 최초 사용자의 요청이 발생하면 가장먼저 Di..

728x90