HttpServletResponse의 목표는 HTTP 응답 메시지를 작성하는 것이다. (HTTP 응답 코드 지정, 헤더/바디 생성) 편의 기능도 제공한다. Content-Type, 쿠키, Redirect(번거로운 헤더 작성 해결) 다음 코드는 HttpServletResponse를 위한 Servlet이다. Status Line, Header 등을 설정할 수 있다. @WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header") public class ResponseHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request..
🌱 Spring/MVC ①
HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달할 수 있는 방법에 대해 공부한다. GET-쿼리 파라미터 # 개요 - /url?username=hello&age=20 - 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 # 전체 파라미터 조회(getParameterNames) - asIterator(): 이 열거에 포함 된 요소들을 순회 하는 Iterator를 리턴한다. 컬렉션에 저장되어 있는 요소를 다 꺼내 올 때까지 도는 것 - forEachRemaining(): Iterator를 ArrayList로 변환해준다. @WebServlet(name = "requestParamServlet", urlPatterns = "/r..
HttpServletRequest 객체의 부가 기능 # 임시 저장소 기능 요청이 오고 응답이 나갈 때까지 유지되는 임시 저장소 기능이다. // 저장 request.setAttribute(name, value) // 조회 request.getAttribute(name) # 세션 관리 기능 request.getSession(create: true) 기본 사용법 @WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header") public class RequestHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, Http..
Servlet은 class 위에 @ServletComponentScan을 통해 Servlet을 자동 등록할 수 있다. Spring이 자동으로 내 Package 및 하위 패키지들로부터 Servlet을 다 찾아서 실행할 수 있도록 도와준다.@ServletComponentScan 우선 Java Class를 하나 생성하고, 클리스가 HttpServlet을 상속할 수 있도록 하고, @WebServlet 어노테이션을 추가한다. 이제 /hello로 오면 아래 코드가 실행된다. 매핑된 url이 호출되면 서블릿 컨테이너는 @WebServlet(name = "helloServlet", urlPatterns = "/hello")public class HelloServlet extends HttpServlet {} [Cont..
클라이언트가 브라우저로 HTTP Request 메시지를 보내면, HTTP Response 메시지가 반환된다. 세부적으로는 서블릿 객체를 호출하여 HttpServletRequest, HttpServletResponse 객체를 생성하고 이를 통해 Response 메시지를 생성하는 것이다. 그렇다면 서블릿 객체는 누가 호출할까? 바로 Thread이다. Thread란 어플리케이션 코드를 하나씩 순차적으로 실행하는 것이다. 예를 들어 main 메서드를 실행하면 main 스레드가 실행되는 것이다. 스레드는 한번에 하나의 코드 라인만 수행하기 때문에, 동시 처리가 필요하면 스레드를 추가로 생성해야 한다. 동시 처리를 위해서는 여러 가지 방법이 있다. # 방법1. 요청할 때마다 매번 스레드를 생성하는 방법 1. 장점 ..
WAS를 하나부터 열까지 개발하기 위해서는 핵심 비즈니스 로직 처리를 포함하여 수많은 기능을 구현해야 한다. 서블릿은 핵심 비즈니스 로직 처리를 제외한 데이터 내용을 읽어내는 것부터, HTTP 응답 메시지를 생성하기까지 모든 것을 담당한다. 예시 코드이다. 클라이언트에서 웹 브라우저로 URL로 요청(urlPatterns)이 오면 서블릿의 서비스 메서드가 실행된다. # HttpServletRequest HTTP 요청 정보를 편리하게 사용 # HttpServletResponse HTTP 응답 정보를 편리하게 제공 우선 HTTP 요청 메시지를 기반으로 HttpServletRequest, HttpServletResponse를 새로 생성한 후, 서블릿 컨테이너(helloServlet)를 호출한다. 개발자는 Htt..
효율적인 리소스 관리 및 서버 과부하 방지를 위한 웹 시스템 구성 정적 리소스(HTML, CSS, JS)는 웹 서버가 처리하고, 비즈니스 로직 호출 등 동적인 처리가 필요하면 WAS에 요청한다. WAS는 중요한 비즈니스 로직 처리를 담당한다. 또한, 정적 리소스만 제공하는 웹 서버는 잘 죽지 않기 때문에, 비교적 장애가 잘 발생하는 WAS가 장애가 발생할 경우 Web 서버가 오류 화면을 제공할 수 있다. 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. ..