Model
HttpServletResponse (Interface)
ServletResponse응답을 보낼 때 HTTP 관련 기능을 제공하도록 인터페이스를 확장하는 역할을 함
HTTP 응답 코드 지정이나 헤더 생성 및 바디 생성을 함
Servlet Container는 HttpServletResponse 객체를 생성하고 서블릿 서비스 메서드(doGet, doPost 등)에 인수로 전달함
Content-Type, 쿠키, Redirect 등 편의 기능도 제공함
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader("Content-Type", "text/plain;charset=utf-8");
PrintWriter writer = response.getWriter();
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
Cookie cookie = new Cookie("myCookie", "good");
cookie.setMaxAge(600);
response.addCookie(cookie);
response.sendRedirect("/basic/hello-form.html");
1. Http 응답 코드를 넣을 수 있다. 기본은 200이다.
2. 주어진 키,벨류로 응답 헤더를 설정할 수 있다. Content-Type의 인코딩을 utf-8로 바꿔주었다.
3. 입출력 예외처리인 IOException를 발생시킨다. getWriter()는 클라이언트에 문자를 보낼 수 있는 PrintWriter 개체를 반환하며 getCharacterEncoding()에 의해 반환된 문자 인코딩을 사용한다.
4. Content 편의 메서드이다.
5. 응답이 아직 커밋되지 않은 경우 클라이언트에 보내는 응답의 컨텐츠 유형을 설정해 준다. 클라이언트로 보내는 응답의 문자 인코딩을 utf-8로 설정해 줬다.
6. 쿠키는 class로 Cloneable, Serializable 두 인터페이스를 구현한다. ( 인터페이스를 상속 받는다고 안 쓰는 것 같은데 구현한다라고 표현하는 것 같아 구현한다라고 표현하겠다. )
7. 지정된 리다이렉션 위치 URL을 통해 클라이언트에 임시 응답을 보내주고 버퍼를 지워준다.
ServletContext
- Servlet 단위로 생성되는 Context
- Servlet Container(e.g. tomcat)에 DispatcherServlet과 같은 servlet을 등록하면 해당 servlet이 갖는 하나의 작은 컨테이너 역할을 하는 객체
- 스프링을 이용하는 경우, 스프링 컨테이너(Application Context)를 부모 Context로 사용
- Application Context와 Servlet Context에 같은 id로 된 Bean이 있으면 ServletContext에 있는 Bean을 우선 사용 (Bean을 찾는 순서가 Servlet에서 ServletContext를 확인한 후에 부모인 ApplicationContext를 확인하기 때문
Page (Interface)
- 페이징의 findAll() 의 기본적인 반환 메서드로 여러 반환 타입 중 하나이다.
- Page<T> 타입을 반환 타입으로 받게 된다면 offset과 totalPage 를 이용하여 서비스를 제공할 수 있게된다.
- Page<T> 는 일반적인 게시판 형태의 페이징에서 사용되고 총 페이지 수를 포함하여 반환함
- Page<T> 타입은 count 쿼리를 포함하는 페이징으로 카운트 쿼리가 자동으로 생성되어 함께 나간다.
HttpSession
https://devlog-wjdrbs96.tistory.com/404
ResponseEntity
InputStreamResource
RedirectAttributes
SpringApplicationBuilder
PageRequest
- Pageable인터페이스를 구현한 PageRequest라는 객체
- 쉽게 Paging 을 위한 정보를 넘길 수 있는데, 이 정보에는 정렬 정보, 페이지 offset, page와 같은 정보가 담겨있다.
- Springboot 내부에서 url 파라미터가 컨트롤러에 바인딩이 될 때, Pageable이 존재하면 PageRequest 객체를 생성한다.
- public생성자가 없기 때문에 of()메서드를 호출하여 반환해야 한다.
of() | 설명 |
PageRequest.of(int page, int size) | 페이지 번호(0부터 시작), 페이지당 데이터의수 |
PageRequest.of (int page, int size, Sort.Direction direction, String ...props) |
페이지 번호, 페이지당 데이터의 수, 정렬 방향, 속성(칼럼)들 |
PageRequest.of(int page, int size, Sort sort) | 페이지 번호, 페이지당 데이터의 수, 정렬방향 |
Page<T>
- offset과 totalPage 를 이용하여 서비스를 제공할 수 있게된다.
- 일반적인 게시판 형태의 페이징에서 사용된다.
- 총 페이지 수를 포함하여 반환한다.
List<T>
- 가장 기본적인 방법으로 count 쿼리 없이 결과만 반환한다.
'두두의 IT > Spring' 카테고리의 다른 글
Spring Boot Mapper & Dao Annotation (0) | 2022.05.25 |
---|---|
Spring Boot Service Annotation (0) | 2022.05.23 |
Spring Boot Main Annotation (0) | 2022.05.23 |
Spring Boot Git Open Source (0) | 2022.05.20 |
Spring Boot + JSP + IntelliJ 주의사항 (0) | 2022.05.09 |