Spring 썸네일형 리스트형 [Spring] HTTP 요청 데이터 (GET, POST-HTML Form, HTTP message body) Http 요청 데이터 HTTP 요청 데이터 HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보자. 주로 다음 3가지 방법을 사용한다. 1. GET - 쿼리 파라미터 예시 : /url?username=hello&age=20 (username은 key값, hello는 value값 - key=value 형식으로 입력) 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 2. POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 예) 회원 가입, 상품 주문, HTML Fo.. 더보기 [Spring] HttpServletRequest의 기본 기능 header, start-line 정보 조회하기 HttpServletRequest의 기본 기능 HttpServletRequest가 제공하는 기본 기능들을 알아보자. start-line 정보 헤더 정보 Header 편리한 조회 기타 정보를 출력해볼 것이다. header, start-line 정보 조회하기 package hello.servlet.basic.request; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.io.IOException; @WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header") pu.. 더보기 [Spring] HttpServletRequest란 무엇인가? HttpServletRequest HttpServletRequest 역할 HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다. 파싱은 HTTP 요청 메시지에서 헤더와 바디의 정보를 추출하는 작업을 말한다. 개발자가 직접 파싱한다는 것은 HTTP 요청 메시지의 문자열 표현을 해석하여 헤더의 정보와 바디의 데이터를 추출하는 작업을 의미한다. 이는 매우 번거롭고 복잡한 작업일 수 있으며, 요청이 복잡하고 다양한 경우에는 오류가 발생할 수도 있다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. 임시저장소 기능 HttpServletReq.. 더보기 IntelliJ 무료버전인 경우 War파일 Gradle 설정 Gradle 설정 1. IntelliJ가 무료버전인 경우, Spring io에서 War파일로 프로젝트를 생성했다면 Gradle 설정에서 IntelliJ IDEA가 아니라 Gradle로 설정해야 실행된다. 유료버전에서는 IntelliJ로 설정해도 된다. IntelliJ로 설정하는 이유는 속도가 빠르기 때문이다. 돈이 있으면 빠른 것을 사용하면 되고, 돈이 없으면 좀 느리게 살면 된다. 2. url 입력칸에 localhost:8080을 입력하면 Whitelabel Error Page가 나와야 성공적으로 연결된 것이다. 더보기 SpringBoot 기초 개념 정리. SpringBoot 1. 스프링 부트 소개 1) 스프링 생태게 기반으로한 개발 플랫폼 2) spring-boot-starter - 자동구성을 제공하는 스타터로 빌드구성이 단순해짐 - XML 구성을 요구하지도 않고 코드로 필요없음 3) 단독 실행 가능한 스프링 애플리케이션 생성 4) 톰캣, 제티 등을 내장 가능. - WAR(Web Application Archieve) ==> JAR(Java Archieve) 2. 빌드도구 1) 종류 - Maven, Gradle 2) 코드 컴파일, 패키징 수행, 의존성 관리(필요한 라이브러리 관리) 3. 스프링 부트 시작되는 곳 - @SpringBootApplication - 스프링 부트 탐색지점 - 자동구성 활성화 - main(String[] args) - 메인 클래스 .. 더보기 서블릿 요청, 응답 예제. Hello Servlet. 서블릿의 동작 구조 클라이언트가 서버에 페이지(url)를 요청한다. 서버는 요청 url에 매핑되는 서블릿을 호출하면서 파라미터를 전달한다. 서블릿이 실행되고 파라미터로 전달된 값을 처리하거나 데이터베이스와 연동한다. HTML과 데이터를 조합하여 재구성한 다음 클라이언트에 전달한다. 웹 브라우저는 수신받은 HTML 내용(CSS, 자바스크립트 포함)을 해석해서 화면에 표시한다. 예제를 통해 서블릿의 동작 구조를 알아보자. package hello.servlet.basic; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import java.. 더보기 비즈니스 요구사항과 설계 1. 회원 - 회원가입 후 조회 가능 - 회원은 일반회원과 VIP등급 두가지가 있다. - 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연계할 수 있다. (미확정) 2. 주문과 할인 정책 - 회원은 상품을 주문할 수 있다. - 회원 등급에 따라 할인 정책을 적용할 수 있다. - 할인 정책은 모든VIP는 1,000원을 할인해주고 고정 금액 할인을 적용해달라(추후 변경가능) - 할인정책은 변경가능성이 높다. (미확정) 요구사항을 보면 회원 데이터, 할인 정책은 결정하기 어려운 부분이다. 그렇다고 개발을 미룰 수 없다. 우리는 객체지향설계방법을 통해 해결할 수 있다. 인터페이스를 만들고 구현체를 언제든지 갈아끼울 수 있다. 대략적인 진행과정이 이해가 된다. 그러나 백문이 불여일타. 코딩을 해봐야 .. 더보기 intellij spring boot, gradle 오류 발생 및 해결 Spring initializr로 Project를 만들어서 intellij로 실행했는데 계속 오류가 났다. 처음에 프로젝트를 Spring Boot 3.0.6버전으로 다운을 받았는데 그게 문제였다. Java 버전은 11이었는데 gradle버전과 Spring Boot 버전이 맞아야 실행이 된다. Java 버전을 17로 바꾸면 실행이 됐을 것이다. Java를 높은 버전으로 새로 까는 것 혹은 Spring Boot 버전을 2.x.xx 대로 낮추는 것이 해결방법이다. 버전이 다르면 실행이 되지 않을 수 있구나를 깨달았다. 더보기 이전 1 2 3 다음