스프링 347

20. MVC 개요

변경의 라이프사이클이 다르면 분리하는 게 좋다. 예를 들어 보여지는 뷰 부분과 비즈니스 로직 등, 아니면 로직과 로직 등, 변경 라이프 사이클이 다르면 분리하는게 좋다. MVC는 Model: 모델은 어떤 통과 같다. 데이터들을 담는.. View: 뷰는 말 그대로 뷰. 보여지는 부분을 책임진다. Controller: 컨트롤러는 전체적인걸 관리하는 그런 느낌이다. 마더보드 같은.. 클라이언트의 요청을 받고, 비즈니스 로직을 호출해주고, 그 결과를 모델에 담아 뷰로 넘겨준다. 그러면 뷰가 그려준다. 이런 식으로 클라이언트 호출을 컨트롤이 받아주고, 어떤 호출을 했는지, 또 클라이언트가 제대로 올바르게 정보를 가지고 호출을 했는지.(상태코드 보내줌) 제대로 호출을 하였다면 그에 따라 비즈니스로직을 호출하고, 거..

17. 회원관리 웹 애플리케이션 개요

회원정보 이름 나이 기능 회원목록 조회 회원 등록 @Getter @Setter public class Member { private Long id; private String name; private int age; public Member(String name, int age) { this.name = name; this.age = age; } public Member(){ } } 멤버 public class MemberRepository { // 실무에선 동시성 문제 때문에 ConcurrentHashMap, AtomicLong 고려 private static Map store = new HashMap(); private static long sequence = 0L; private static fin..

14. HttpServletResponse

HTTP 응답 코드 (400 등) 헤더 생성 메시지 바디 생성 편의기능 쿠키, Content-type, 리다이렉트 등 @WebServlet(name="responseHeaderServlet", urlPatterns = "/response-header") public class ResponseHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //start-line response.setStatus(HttpServletResponse.SC_OK); //header ..

13. HTTP API JSON

json 형식으로 보낼거임. {"username": "hello", "age": 40} 포스트 맨으로 쉽게 보낼 수 있음. 먼저, 보통 객체로 바꿔서 씀. //@Getter @Setter public class HelloData { private String username; private int age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } getter, setter를 이용해야..

11. html form, POST 요청 정보.

회원가입, 상품 주문 등. content-type:'application/x-www-form-urlencoded' 이렇게 해 놔야 이게 form 형식으로 보낸다는 소리임. 메시지 바디에 GET과 똑같은 형식으로 넣어서 보냄. key=value&key2=value2 username: age: 전송 그냥 위 html 만들어서 저기다 넣고 action, 대상을 /request-param으로 하면(저번에 GET test 해보던 그 곳) 똑같이 동작함. 저렇게 post해놓으면 알아서 content-type:'application/x-www-form-urlencoded' 이렇게 되고 request-param에 있던 request.getParameter()까지 똑같이 동작됨. 즉, GET은 url 쿼리로 넣는거고, ..