@ServletComponentScan // 서블릿 자동 등록
@SpringBootApplication
public class ServletApplication {
public static void main(String[] args) {
SpringApplication.run(ServletApplication.class, args);
}
}
HelloServlet.java
package hello.servlet.basic;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import java.io.IOException;
@WebServlet(name = "helloServlet", urlPatterns = "/hello") //중복 있으면 안됨
public class HelloServlet extends HttpServlet {
//단축키 ctrl+o
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
System.out.println("HelloServlet.service");
//단축기 soutv
System.out.println("request = " + request);
System.out.println("response = " + response);
String username = request.getParameter("username");
System.out.println("username = " + username);
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
response.getWriter().write("hello " + username);
}
}
@WebServlet : 서블릿 애노테이션
- name : 서블릿 이름
- urlPatterns : url 매핑
application.properties
logging.level.org.apache.coyote.http11=debug
추가
서블릿 컨테이너 동작 방식
welcome 페이지 추가 - basic.html, index.html 추가
http://localhost:8080 호출시 index.html 페이지가 열리도록 함
HttpServletRequest
서블릿이 개발자가 http 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 http 요청 메시지를 파싱하고,
그 결과를 HttpServletRequest 객체에 담아서 제공
HTTP 요청 메시지
POST /save HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
username=kim&age=20
START LINE : HTTP 메소드 ,URL, 쿼리 스트링, 스키마, 프로토콜
헤더 : 헤더 조회
바디 : form 파라미터 형식 조회, message body 데이터 직접 조회
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
printStartLine(request);
printHeaders(request);
printHeaderUtils(request);
printEtc(request);
response.getWriter().write("ok");
}
printStartLine, printHeaders, printHeaderUtils, printEtc 함수를 이용하여 헤더 정보를 조회할 수 있다. <코드 생략>
'BackEnd : Spring > Spring MVC' 카테고리의 다른 글
[Spring MVC] HttpServletResponse, Http 응답 데이터 (0) | 2024.03.23 |
---|---|
[Spring MVC] HTTP 요청 데이터 (0) | 2024.03.20 |
[Spring MVC] 자바 백엔드 웹 기술 역사 (0) | 2024.03.16 |
[Spring MVC] HTML, HTTP API, CSR, SSR (0) | 2024.03.16 |
[Spring MVC] WAS, 서블릿, 쓰레드 (0) | 2024.03.16 |