정적 리소스
- 고정된 HTML 파일, CSS, JS, 이미지, 영상등 게종
- 주로 웹 브라우저
HTML 페이지
- 동적으로 필요한 HTML 파일을 생성해서 전달
- 웹 브라우저 : HTML 해석
HTML API
- HTML이 아니라 데이터를 전달
- 주로 JSON 형식 사용
SSR (서버 사이드 렌더링)
- HTML 결과를 서버에서 만들어서 웹 브라우저에 전달
- 주로 정적인 화면에 사용
- 관련기술 : JSP, 타임리프 (백엔드)
CSR (클라이언트 사이드 렌더링)
- HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용
- 주로 동적인 화면에 사용하고 웹 환경을 앱처럼 필요한 부분부분 변경 가능 ex) 구글 지도, Gmail
- 관련기술 : React, Vue.js (프론트)
서블릿
자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("HelloServlet.service");
System.out.println("request = " + request);
System.out.println("response = " + response);
String username = request.getParameter("username");
System.out.println("username = " + username);
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
response.getWriter().write("hello " + username);
}
}
- @WebServlet 서블릿 애노테이션
- name: 서블릿 이름
- urlPatterns: URL 매핑
HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다.
protected void service(HttpServletRequest request, HttpServletResponse response)
⇒ 인텔리제이 ctrl + O service에서 잠금모양 (protected)
- 웹 브라우저 실행
- http://localhost:8080/hello?username=world
- 결과: hello world
HTTP 요청 메시지 로그로 확인하기
logging.level.org.apache.coyote.http11=debug 를 추가한다.
운영서버에 이렇게 모든 요청 정보를 다 남기면 성능저하가 발생할 수 있다.
'Develop > Spring' 카테고리의 다른 글
[Spring/MVC] MVC 패턴 (0) | 2024.03.21 |
---|---|
[Spring/MVC] HttpServletRequest,Response, HTTP 요청 데이터 (0) | 2024.03.21 |
[Spring/기본편] 빈 스코프 (0) | 2024.03.19 |
[Spring/기본편] 빈 생명주기 콜백 (0) | 2024.03.19 |
[Spring/기본편] 롬복 (lombok) (0) | 2024.03.19 |
댓글