web

이번에는 mapping을 통해서 간단한 html 페이지를 보여주도록 하겠습니다. 처리 과정 일반적으로 사용자의 요청을 처리하는 과정은 다음 그림과 같습니다. 우리는 매핑을 통해 Controller가 특정 View를 사용자에게 반환하도록 만들게요. Client가 웹 서비스에 요청을 보내면 Dispatcher Servlet이 매핑되는 Handler를 찾습니다. Controller가 요청을 처리한 후에 View를 Dispatcher Servlet에게 전달해주고 다시 사용자에게 응답이 되는 흐름입니다. Controller가 View를 반환하기 위해서는 ViewResolver가 사용되며, ViewResolver 설정에 맞게 View를 찾아 렌더링합니다. @Controller 해당 자바 클래스가 Controller..
IDE에서 spring 프로젝트를 생성하는 방식도 있지만 공식 홈페이지에서 생성하는 방법에 대해서 다루려고 합니다. 프로젝트 생성 start.spring.io/ 위의 링크를 따라가시면 이러한 페이지가 나옵니다. Project의 타입부터 언어, 스프링 부트 버전, dependencies 추가 설정들이 가능합니다. Project 타입의 Maven과 Gradle은 이전 포스팅에서 다뤘으니 참고해주세요. Maven vs Gradle Maven과 Gradle은 빌드 도구(Build tool)입니다. 라이프사이클도 관리해주고 관련 라이브러리들을 자동으로 가져오는 등 편리한 기능들을 제공하고 있습니다. 쉽게 표현하면 프로젝트 생성, 테스트 빌 coding-nyan.tistory.com 언어는 사용하시는 언어로 선택해..
Maven과 Gradle은 빌드 도구(Build tool)입니다. 라이프사이클도 관리해주고 관련 라이브러리들을 자동으로 가져오는 등 편리한 기능들을 제공하고 있습니다. 쉽게 표현하면 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 툴이라고 할 수 있습니다. Maven과 Gradle이 어떤 점이 다른 지 살펴보도록 하겠습니다. Maven Maven은 Ant를 사용하던 개발자들의 불편함을 해소하고자 2004년에 출시했습니다. pom.xml을 이용한 정형화된 빌드 시스템을 제공하고 있습니다. Maven은 외부에서 필요한 라이브러리와 플러그인들을 받고 로컬에 저장합니다. 또한 간단한 설정을 통한 배포 관리가 가능합니다. 자세한 특징들은 링크로 대신하겠습니다. maven.apache.org/maven-..
일반적인 경우 jQuery를 이용하는 경우에 엔터키를 자동으로 입력해주는 스크립트를 아래처럼 작성할 수 있습니다. var e = jQuery.Event("keypress"); e.which = 13; $(selector).trigger(e); 크롬 확장 프로그램의 자바스크립트의 경우 앞선 예제와 차이점이 존재합니다. 특정 페이지에서 동작하는 자바스크립트 코드가 존재할 테고 이는 확장 프로그램을 만들기 위해 작성하는 스크립트랑은 다르다는 것을 인지하셔야 합니다. 문법이 다르다는 이야기가 아니라 frame이 다릅니다. 따라서 추가한 이벤트를 페이지에서는 적용이 안됩니다. 대부분 개발자도구에서 먼저 테스트를 해보고 성공한 코드를 js에 추가하고 확장 프로그램을 로드하실 텐데요. 그러고 이벤트가 동작하지 않는 ..
legacy한 keyCode 자바스크립트로 키보드 이벤트를 구현하던 와중 궁금증이 생겼습니다. 간단하게 Alt키를 눌렀을 경우를 체크하려는데 keyCode 부분에 이건 아니라는 듯이 줄이 쫙 그어져 있는 문제였죠. 코드를 실행하면 정상적으로 동작은 하지만 찜찜해서 찾아봤습니다. 취소선에 마우스를 가져가면 다음과 같은 메시지를 볼 수 있습니다. 'keycode' is deprecated를 구글에 검색해봤습니다. stack overflow에 이미 관련 질문이 있더군요. 링크 : stackoverflow.com/questions/35394937/keyboardevent-keycode-deprecated-what-does-this-mean-in-practice I'd suggest that you should ..
Spring이란? 기존 Java EE 환경에서 Spring framework는 기존의 환경을 겨울로 칭하며 이제 스프링이라는 봄이 찾아옵니다!! 라는 의미로 나왔습니다. Spring은 DI(의존성 주입)와 IoC(제어 역행)을 통해 유연성을 제공합니다. 다른 장점들도 많겠지만 두 장점이 Spring의 핵심이라고 보시면 됩니다. Spring boot Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". Spring의 한 가지 단점이 있다면 설정이 복잡하다는 것입니다. Spring의 dependency 설정을 해보신 분들은 아실겁니다. 버전도 직접 명시해..
서블릿에서의 Session 서블릿 컨테이너는 HttpSession 인터페이스를 사용하여 클라이언트와 서버 사이에 세션을 만듭니다. 세션은 사용자의 둘 이상의 연결 또는 페이지 요청에 걸쳐 지정된 기간 동안 지속됩니다. 서버는 쿠키 사용 또는 URL 재작성과 같은 여러 가지 방법으로 세션을 유지할 수 있습니다. 즉 HttpSession을 이용해 세션을 컨트롤합니다. method 정리 getCreationTime 언제 세션이 생성되었는지 1970 년 1 월 1 일 자정 (GMT) 이후 밀리 초 단위로 측정된 값을 반환합니다. getId 해당 세션의 유니크한 값(String형)을 반환합니다. getLastAccessedTime 1970 년 1 월 1 일 자정 (GMT) 이후 클라이언트가이 세션과 관련된 요청을..
· web
쿠키와 세션의 개념을 알아보기 전에 HTTP의 특징을 통해 우리가 왜 이걸 사용하는지 알아보겠습니다. HTTP 특징 connectionless 클라이언트 -> 서버(요청)서버 ->클라이언트(응답)일련의 작업 후에 연결을 끊어버립니다. stateless 통신이 끝나면 상태를 유지하지 않는 특성입니다. 상상을 해봅시다. 어느 사이트에서 쇼핑을 하려고 합니다. 로그인을 하고 상품을 고르고 결제하려는데 또 로그인을 하래요. 왜?? 연결이 끊겼고 당신이 로그인했다는 상태가 유지되고 있지 않으니까요.페이지를 새로고침 하고~ 이동할 때마다 인증을 계속해야 한다면 유저는 귀찮겠죠.HTTP 프로토콜의 특성을 가지고 가며 문제점을 해결할 수 있는 친구가 세션과 쿠키입니다. 쿠키 쿠키는 클라이언트에 저장되는 Key-valu..
· web
2020/07/19 - [웹 개발] - [Web] POST 요청 [Web] POST 요청 GET 요청 방식에 대해서는 지난 글에서 다뤘습니다. 참고해주세요. 2020/07/07 - [웹 개발] - [servlet] GET 요청 처리하기 [servlet] GET 요청 처리하기 드디어 사용자가 입력한 데이터를 받아와서 처리하는 coding-nyan.tistory.com 서버 측에 POST 요청을 보내보는 실습을 해봤습니다. 혹시 한글로 된 데이터를 보내보셨나요?? 그럼 깨지는 현상이 발생합니다. 왜 그럴까요? 한글이 깨지는 이유 저희는 HTML에서도 UTF-8 인코딩을 해봤구요. Servlet에서 출력할 때도 UTF-8로 설정해줬습니다. 그렇다면 서버로 보내는 과정에서 깨지는 경우밖에 남지 않습니다. 톰캣은..
· web
GET 요청 방식에 대해서는 지난 글에서 다뤘습니다. 참고해주세요. 2020/07/07 - [웹 개발] - [servlet] GET 요청 처리하기 [servlet] GET 요청 처리하기 드디어 사용자가 입력한 데이터를 받아와서 처리하는 방법에 대해 다룰 시간이 되었습니다. 클라이언트가 서버에 요청하는 방식 중에 하나인 GET 요청을 이용해서 다루려고 합니다. GET 요청이란 coding-nyan.tistory.com POST 요청을 왜 사용하는가? 오늘은 POST 방식에 대해서 알아보려고 합니다. GET 방식에서는 우리가 요청 내용을 URL에 담아서 전송했습니다. 만약에 ID와 비밀번호를 해당 방식으로 보낸다면 어떤 위험이 존재할까요? 당신은 학교 공용 컴퓨터에서 Gmail을 확인할 일이 생겼습니다. 급..
moongomi
'web' 카테고리의 글 목록 (4 Page)