ss__jae2
타닥타닥 IT
ss__jae2
전체 방문자
오늘
어제

Github

  • 타닥타닥 IT (179)
    • 웹개발 (86)
      • JAVA (23)
      • DBMS (6)
      • HTML (9)
      • CSS (7)
      • JavaScript (12)
      • JSP (14)
      • Spring (15)
    • FrontEnd (63)
      • HTML (5)
      • CSS (12)
      • JavaScript (16)
      • React.js (14)
      • Node.js (16)
    • API (5)
    • SQLD (21)
      • SQLD (1)
      • 1과목 데이터 모델링의 이해 (11)
      • 2과목 SQL 기본 및 활용 (9)
    • CS Study (4)
      • 네트워크 (4)

공지사항

최근 댓글

최근 글

반응형
hELLO · Designed By 정상우.
ss__jae2

타닥타닥 IT

웹개발/JSP

[JSP] 서블릿(Servlet)

2022. 5. 19. 15:52
반응형

1. 서블릿(Servlet)

- JAVA 코드로 HTML을 작성할 수 있도록 해주는 JAVA 프로그램

- 사용자가 서버에게 요청을 보낼 때 정적인 요청은 상관이 없지만 동적인 요청은 서버에서 못하기 때문에 웹 컨테이너에서 동적인 요청을 정적인 것으로 정제해서 응답해준다.

- 그 안에는 서블릿 클래스라는 게 있고 그 클래스가 들어온 동적인 요청을 정적으로 HTML틀에 데이터까지 위치시켜서 그대로 보내준다.

- 요청이 GET 방식이면 doGet메소드를 실행시키고 POST 방식이면 doPost를 실행시킨다.

 

- 이 와 같이 서블릿에서 직접 HTML 틀까지 만들어서 응답으로 보내준다.

- 이렇게 하나하나 쓰기 불편함으로 JSP를 쓰는 것이다.

out.print("<html>");
out.print("<head>");
out.print("<body>");
...

2. 서블릿의 매핑

- 서블릿은 매핑을 해야 사용자가 요청을 할 때 간결하고 간단하게 요청을 할 수 있고, 보안성을 높일 수 있다.

- 매핑하는 방법에는 두 가지가 있는데, web.xml에 하는 방법과 서블릿 클래스 파일 내에서 어노테이션을 이용하는 방법이다.

- 매핑을 하게 되어서 우리가 설정한 주소값으로 요청을 하면 서블릿을 실행하게 되는 것이다.

localhost:9090/test -> web.xml 또는 어노테이션으로 매핑해 놓은 서블릿 찾기

서블릿은 클래스이기 때문에 서블릿 실행

3. 서블릿 실행과정

① Thread에 의해서 서블릿에 있는 service() 메소드 호출

② 전송 방식을 파악해서 doGet() 또는 doPost() 메소드 호출

③ 각 메소드 안에 작성해 놓은 내용 실행(각 메소드 내에서 동적인 것들을 정적으로 바꿔서 보냄)

④ 소멸 단계

- WAS는 Response 객체를 HttpResponse형태(정적)로 바꿔서 웹 서버에 전달하고 생성된 Thread를 종료

- 그리고 HttpServletRequest, HttpServletResponse 객체를 제거

4. 예시

- <form> 태그에서 submit 버튼을 누르게 되면 설정되어 있는 MyServlet에 매핑되어 있는 서블릿으로 get방식으로 요청하게 된다.

- 위와 같이 서블릿 클래스를 만들게 되면 doGet 메소드와 doPost 메소드가 있는데, 전송방식에 따라 실행하는 메소드가 달라진다.

- <form> 태그에서 전송방식을 get으로 하고 action을 어노테이션으로 매핑한 MyServlet이기 때문에 이 서블릿 클래스의 doGet 메소드를 실행하게 돼서 응답을 보내주게 된다.

 

- 위 사용자 화면에서 사용자는 두 개의 입력값을 입력해서 요청하게 된다.

- 요청할 때 서블릿에게 보내는 것이기 때문에 request 안에 있는 메소드인 getParameter를 쓰면 입력값을 받을 수 있다.

- 사용자 화면에서 <input> 태그에서 name 속성으로 요청에 보내게 되는데 그래서 request.getParameter("식별이름")으로 입력값을 받을 수 있다.

 

- 이제 서블릿에서 응답을 보내줘야 하는데 응답은 response를 사용해서 응답해 줄 수 있다.

- response.setContentType("text/html; charset=UTF-8") 은 응답의 타입과 인코딩 등을 설정해주는 것이다.

- 응답의 타입을 html로 하고 인코딩을 UTF-8로 한다는 뜻이다.

- PrintWriter out = response.getWriter(); 는 응답의 데이터를 작성하기 위한 객체를 생성해 준 것이다.

- 이것을 통해 out.print()를 사용해 html로 응답을 해 줄 수 있게 된다.

반응형
저작자표시

'웹개발 > JSP' 카테고리의 다른 글

[JSP] 쿠키(Cookie)  (0) 2022.05.22
[JSP] 내장 객체, Form 유효성 검사 및 예제  (0) 2022.05.22
[JSP] 액션 태그  (0) 2022.05.20
[JSP] 디렉티브 태그(Directive Tag)  (0) 2022.05.20
[JSP] JSP(Java Server Page), 스크립트 태그  (0) 2022.05.19
    '웹개발/JSP' 카테고리의 다른 글
    • [JSP] 내장 객체, Form 유효성 검사 및 예제
    • [JSP] 액션 태그
    • [JSP] 디렉티브 태그(Directive Tag)
    • [JSP] JSP(Java Server Page), 스크립트 태그
    ss__jae2
    ss__jae2

    티스토리툴바