스프링/3. 스프링 MVC 54

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 쿼리로 넣는거고, ..

10. GET 요청 정보

검색, 필터, 페이징 등에서 많이 사용. http://url~~/~~~?username=hello&age=28 url 끝에 ?로 시작. 구분은 &로 @WebServlet(name="requestParamServlet", urlPatterns = "/request-param") public class RequestParamServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("RequestParamServlet.service"); request..

8. HttpServletRequest, Header

http 요청을 개발자 대신에 파싱해 주는 객체. service에 인자로 넣어두면 알아서 받아줌. 요청을 처리할 동안 잠깐 쓸 수 있는 임시 저장소 request.setAttribute("name",value) request.getSession() 처럼 세션 알 수 있는것도. 메시지 바디를 통으로 읽어들이는 것도 있음. @WebServlet(name="requestHeaderServlet",urlPatterns = "/request-header") public class RequestHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response..

7. Hello Servlet

@ServletComponentScan 이거 해두면, 그 패키지와 그 패키지 하위의 서블릿을 모두 찾아서 컨테이너에 등록해 줌. main 에다가 해두더라. Servlet은 HttpServlet이라는 걸 상속 받아야 한다. service 오버라이드 하는데, HttpServletRequest 이거 인자로 있는거 오버라이드 해야 함 처음에 저거 하면, super.service(req, resp); 이게 자동으로 나오는데, 클라이언트의 요청에 따라 처리하는 부모의 HttpServlet의 service 호출 클라이언트의 요청에 따라, 저거는 doGet이나 doPost 등을 호출하는데 override 해서 쓰는거임. @WebServlet(name="helloServlet", urlPatterns = "/hello"..

5. 자바 웹 기술 발전 역사

서블릿 - html 생성이 어려움 jsp - html 생성이 쉽지만 비즈니스 로직까지 너무 많은 역할 담당 서블릿, jsp 조합에 mvc패턴 사용 - 렌더링 부분과 비즈니스 로직 부분을 나눔 mvc 프레임워크 - 여러 mvc 프레임워크 등장. 애노테이션 기반 스프링mvc 등장 - 원맨쇼 스프링 부트 등장 과거 : 서버에 WAS 설치, 소스코드 War로 빌드해서 WAS에 넣음 현재 : 스프링 부트(Jar)에 WAS 포함 Spring MVC 멀티 쓰레드 사용가능 Spring WebFlux 최신 기술이고, 최소 쓰레드로 최대 성능이지만 아직 잘 안씀. 쓰레드를 CPU 갯수에 맞춰서 고효율 자바 뷰 템플릿 html을 백엔드에서 편리하게 생성하는 기능 jsp 느림 프리마커, 벨로시티 속도문제 해결, 다양한 기능 ..