Spring MVC 1편 웹 애플리케이션 이해
Spring MVC 1편 서블릿
Spring MVC 1편 멀티 쓰레드
Spring MVC 1편 HTML, HTTP API, CSR, SSR
Spring MVC 1편 자바 백엔드 웹 기술 역사
Spring MVC 1편 서블릿 (프로젝트 생성)
Spring MVC 1편 서블릿 (Hello 서블릿)
Spring MVC 1편 서블릿 (HttpServletRequest - 개요)
Spring MVC 1편 서블릿 (HttpServletRequest - 기본 사용법)
Spring MVC 1편 서블릿 (HTTP요청데이터 - 개요)
Spring MVC 1편 서블릿 (HTTP 요청 데이터 - GET 쿼리 파라미터)
Spring MVC 1편 서블릿 (HTTP 요청 데이터 - POST HTML Form)
Spring MVC 1편 서블릿 (HTTP 요청 데이터 - API 메시지 바디)
Spring MVC 1편 서블릿 (HTTP 응답 데이터)
서블릿,JSP을 활용해 회원 관리 웹 구현
Model View Controller
포워드 (forward) 중복ViewPath 중복예 ) String viewPath = "WEB-INF/views/save-result.jsp";사용하지 않는 코드!! 중요 공통 처리가 어렵다해결 : 프론트 컨트롤러 (Front Controller)가 필요하다. 하위
FrontController 패턴 특징 > FrontController 서블릿 하나로 클라이언트의 요청을 받음 FrontController가 요청에 맞는 컨트롤러를 찾아서 호출 !! 중요 입구를 하나로 공통 처리 기능 FrontController를 제외한 나머지 컨트
View를 분리함으로써 Controller에서 ViewPath를 직접 Forward 안해도 된다.MyView 클래스에서는 Controller 각각 URI에 맞춰 render()를 반환한다.대신에 MyView 객체를 만들어 MyView를 반환하게 한다.인터페이스를 상속하
- 뷰 리졸버 > - 컨트롤러가 반환한 논리 뷰 이름을 실제 물리 뷰 경로로 변경한다. 그리고 실제 물리 경로가 있는 MyView 객체를 반환한다. - 논리 뷰 이름 : "members" - 물리 뷰 경로 : "/WEB-INF/views/members.j
v3와 차이점 : 반환 하는 결과로 view의 이름만 반환하면된다.
유연한 컨트롤러 핸들러 어댑터 : 중간에 어댑터 역할을 하는 어댑터를 추가하여, 다양한 컨트롤러를 호출 할수 있게한다. 어댑터 패턴 v3, v4는 완전히 다른 인터페이스다. 따라서 호환이 불가능하다. 어댑터 패턴을 사용해 다양한 방식의 컨트롤러를 처리할수 있도록한다.
참고 : Controller 인터페이스는 @Controller 어노테이션과는 전혀다르다. 실무 (현업) 에서는 @RequestMapping을 주로 사용
결론 : String 으로 반환하는게 훨씬 편하다.HttpServletRequest, HttpServletResponse 사용할 필요없이 RequestParam(" ") 타입 변수명, 으로 요청 파라미터를 받을때 사용한다.Jar 패키지 사용항상 내장 톰캣 서버사용하고,
GET, POST등 메서드를 지정해야되기때문에 잘 사용 X,차라리 @GetMapping, @PostMapping 사용@RequestMapping("요청 URL"), @RequestMapping({"요청 URL"}, {"요청 URL"})배열로 접근해도 가능, or 조건으
클라이언트에서 서버로 요청데이터를 전달할때는 주로 3가지 방법을 사용. 1. GET - 쿼리 파라미터 메시지 바디 없이 URL의 쿼리 파라미터에 데이터를 포함해서 전달 예 ) 검색, 필터, 페이징에서 많이 사용하는 방식 /url "?username=hello&age=2
@ModelAttribute > 놀랍게도 위 코드랑 아래 코드랑 같은 코드이다. 아래 코드는 @ModelAttribute를 사용해 helloData의 객체가 생성되고, 요청 파라미터의 값을 모두 바인딩(입력) 해준다. 정리 @RequestParam도 생략가능,
HTTP 요청 메시지 - 단순 텍스트
@RequestBody 객체 파라미터 단순 String이 아닌 객체를 파라미터로 넘길수있다. 여기에서는 "HelloData" 라는 직접만든 객체를 지정하여 넘길수있다. 번외 : !! @RequestBody는 생략하면 안된다.
스프링 (서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다. 정적 리소스 > 예 ) 웹 브라우저에서 "정적 (static)인" HTML, css, js를 제공할때는 "정적 리소스"를 사용한다. 뷰 템플릿 사용 > 예 ) 웹 브라우저에 동적인 HTML을 제공 할때
view 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하면 편리하다.@RequestBody, HttpEntity(RequestEntity)@Res
View Template(뷰 템플릿)을 컨트롤러가 전달하는 데이터를 이용하여html태그를 기반으로하여 th:속성을 이용하여 동적인 View를 제공합니다.타임리프 라이브러리 추가html 태그에 다음과 같이 추가@{URL 링크} : 타임리프는 URL 링크를 사용하는 경우
@ModelAttribute는 사용자가 요청시 전달하는 값을 "오브젝트(객체)" 형태로 매핑해주는 어노테이션이다.요청 파라미터값 (메서드.set...)을 프로퍼티 접근법 (set...)으로 입력해준다.model.addattribute로 지정한 객체를 자동으러 넣어준다.
Post 방식으로 온 요청에 대하여 GET방식의 웹페이지로 리다이렉트 시키는 패턴을 말한다.POST --> REDIRECT --> GET새로고침으로 인한 동일한 요청 (POST)이 연속적으로 보내지는 이슈가 발생한다는 것이다. 만약 이 이슈가 중요하지 않은 로직이 있는
Spring MVC 1편 서블릿 JSP 웹