PSA, 스프링 웹 MVC
servlet이란?
웹프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술
웹에서 클라이언트가 어떠한 요청을 하면 그에대한 결과를 돌려줘야하는데 이를 수행하는 것이 servlet이다
즉, 어떠한 사용자가 로그인을 하려고 할 때 사용자는 아이디와 비밀번호를 입력하고, 로그인 버튼을 누른다
그때 서버는 클라이언트의 아이디와 비밀번호를 확인하고, 다음 페이지를 띄워주어야 하는데, 이러한 역할을 수행하는 것이 바로 서블릿이다
특징
- 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트
- html을 사용하여 요청에 응답한다
- Java Thread를 이용하여 동작한다
- MVC 패턴에서 Controller로 이용된다
- HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받는다. UDP보다 속도가 느리다
- HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다
Portable Service Abstraction
servlet 애플리케이션을 만들고 있음에도 servlet을 전혀 사용하지 않는다
일반적인 서블릿 형태
// /owner/create
public class OwnerServlet extends HttpServlet {
// GET
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
// POST
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
현재 코드 모습
@GetMapping("/owners/new")
@LogExecutionTime
public String initCreationForm(Map<String, Object> model) {
Owner owner = new Owner();
model.put("owner", owner);
return VIEWS_OWNER_CREATE_OR_UPDATE_FORM;
}
@PostMapping("/owners/new")
@LogExecutionTime
public String processCreationForm(@Valid Owner owner, BindingResult result) {
if (result.hasErrors()) {
return VIEWS_OWNER_CREATE_OR_UPDATE_FORM;
}
else {
this.owners.save(owner);
return "redirect:/owners/" + owner.getId();
}
}
@GetMapping, @PostMapping을 이용하여 구현중이다
실제 아래에서는 위의 servlet 형태처럼 작동된다 현재 코드는 추상화를 통해 구현한 모습이다
스프링 웹 MVC
MVC(Model View Contrller)
스프링이 제공하는 스프링 웹 MVC에서 추상화 계층 알아보기
@Controller
위 애노테이션을 사용하면 요청을 매핑할수 있는 Contrller역활을 수행하는 클래스가 된다,
따라서 해당 클래스에 @GetMapping, @PostMapping을 이용해서 요청을 매핑을 한다
매핑
@GetMapping("/owners/new")와 같은 형태에서 해당 url요청이 들어왔을때 해당 애노테이션이 달린 메소드가 처리하게끔 매핑을 하는것
@RequestMapping
요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션
클라이언트는 URL로 요청을 전송하고, 요청 URL을 어떤 메서드가 처리할지 여부를 결정하는 것
형태
@RequestMapping("/owners/{ownerId}")
@Transactional
A -> B -> C의 순서로 작업이진행 될 때 중간에 하나라도 안된다면 작업이 중단되는 형태를 Transaction이라 한다
즉, 다같이 되거나 하나라도 안되면 중단되는 형태 ex) 인터넷 쇼핑 물건 구매
@Cachealbe, @CacheEvict
Author And Source
이 문제에 관하여(PSA, 스프링 웹 MVC), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dnstlr2933/PSA-스프링-웹-MVC저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)