서블릿 등록 방법
@ServletComponentScan // 하위 패키지의 서블릿 자동 등록
@SpringBootApplication
public class ServletApplication {
}
psvm main()
이 있는 클래스 위에@ServletComponentScan
애너테이션을 추가하여 서블릿 자동 등록을 할 수 있다.
@WebServlet(urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
HttpServlet
을 구현하고,service
메서드를 override해서 서블릿을 등록할 수 있다.
서블릿 컨테이너 동작 방식
![](https://blog.kakaocdn.net/dn/bvkLhs/btskOTVCxV4/lJbvnoAx0LLx7AYLZsVha1/img.png)
HTTP 요청 데이터(request) 사용 방법
HttpServletRequest
에 요청 Header정보와 Body정보가 모두 들어있다.request.getXXX()
을 통해서 가져올 수 있다.
GET 쿼리 파라미터
- /url?username=hello&age=20
- 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함하여 전달한다.
- 예) 검색, 필터, 페이징
request.getParameter()
를 통해서 가져올 수 있다.
POST - HTML Form
- content-type: application/x-www-form-urlencoded
- 메시지 바디에 쿼리 파라미터 형식으로 전달한다.(username=hello&age=20)
- 예) 회원 가입, 상품 주문, HTML form 사용
- GET 쿼리 파라미터와 마찬가지로,
getParameter
를 통해서 가져올 수 있다.- 클라이언트인 브라우저에서만 차이가 있고, 서버에서는 GET 쿼리 파라미터와 HTML form의 차이가 없어서 가능하다.
POST - API 메시지 바디
- HTTP API에서 주로 사용하고, JSON XML TEXT 3가지 방식이 있다.
- 세 방식 모두 단순 string이 넘어가는 것은 동일하지만, request header의 content-type만 차이가 있다.
- POST, PUT, PATCH 3가지 방식이 있다.
HTTP 응답 데이터(response) 사용 방법
HttpServletResponse
에 응답 Header정보와 Body정보를 모두 넣을 수 있다.response.setXXX()
을 통해서 넣을 수 있다.
단순 텍스트
PrintWriter writer = response.getWriter();
writer.print("OK");
HTML
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
writer.print("OK");
Json
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
HelloData data = new HelloData();
data.setUsername("Kim");
data.setAge(20);
String result = objectMapper.writeValueAsString(data);
response.getWriter().write(result);
Uploaded by N2T
(23.06.21 22:15)에 작성된 글 입니다.