본문 바로가기

서블릿6

파일 업로드 파일을 업로드 하려면 파일은 문자가 아니라 바이너리 데이터를 전송해야 한다. 문자를 전송하는 이 방식으로 파일을 전송하기는 어렵다. 이 문제를 해결하기 위해 HTTP는 multipart/form-data 라는 전송 방식을 제공한다. 첫 예제에서는 서블릿을 이용한 파일 업로드를 구현함. application.properties logging.level.org.apache.coyote.http11=debug 이 옵션을 사용하면 HTTP 요청 메시지를 확인할 수 있다. 멀티파트 사용 옵션 spring.servlet.multipart.max-file-size=1MB : 파일의 최대 용량 제한 가능 spring.servlet.mulitpart.enabled=true (기본) : false로 설정하면 멀티파트 데이.. 2022. 6. 26.
스프링 타입 컨버터 애플리케이션을 개발하다 보면 문자를 숫자로 변환하거나, 반대로 숫자를 문자로 변환해야 하는 것처럼 타입을 변환해야 하는 경우가 상당히 많다. TypeConverter 이때 타입 컨버터를 이용하여 타입을 바꿀 수 있다. @Slf4j public class IntegerToStringConverter implements Converter { @Override public String convert(Integer source) { log.info("convert source = {}", source); return String.valueOf(source); } } 하지만, 이렇게 타입 컨버터를 하나하나 직접 사용하면, 개발자가 직접 컨버팅 하는 것과 큰 차이가 없다. ConversionService 이렇게 타.. 2022. 6. 25.
HTTP 요청 데이터와 응답 데이터 HTTP 요청데이터 HTTP 요청 데이터 - 개요 HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법은 주로 다음 3가지 방법을 사용한다. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 예) 회원 가입, 상품 주문, HTML Form 사용 HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON, X.. 2022. 3. 31.
HttpServlet 기본 사용법 HttpServletRequest - 개요 HttpServletRequest 역할 HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. HttpServletRequest를 사용하면 HTTP 요청 메시지를 편리하게 조회할 수 있다. HttpServletRequest 객체는 추가로 여러가지 부가기능도 함께 제공한다. 임시 저장소 기능 해당 HTTP 요청이 시작부터 끝날 때 까지 유지되는 임시 저장소 기능 저장: request.setAttribute(name, value) 조회: requ.. 2022. 3. 29.
서블릿 프로젝트 시작 Hello 서블릿 스프링 부트 환경에서 서블릿 등록하고 사용해보자. 스프링 부트는 톰캣 서버를 내장하고 있으므로, 톰캣 서버 설치 없이 편리하게 서블릿 코드를 실행할 수 있다. @ServletComponentScan 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 을 지원한다. HelloServlet 클래스를 작성한다. @WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override //서블릿이 실행되면 service를 호출 protected void service(HttpServletRequest request, .. 2022. 3. 29.
웹 애플리케이션 이해 웹 서버 (Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 어플리케이션 서버 (WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 + (정적 리소스 제공) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat), Jetty, Undertow 웹 서버, 웹 애플리케이션 서버 차이 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직 사실은 둘의 용어도 경계도 모호함 자바는 서블릿 컨테이너 기능을 제공하면 WAS WAS는 애플리케이션 코드를 실행하는데.. 2022. 3. 28.