💡 Servlet이란?
자바 서블릿은 자바를 이용해서 웹페이지를 동적으로 생성하는 서버측 프로그램을 말하고
자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다
서블릿은 JSP와 달리 자바 코드 안에 HTML을 포함하고 있다(JSP는 그 반대임 )
public class myServlet extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init method 호출!");
}
@Override
public void destroy() {
System.out.println("destroy method 호출!");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
System.out.println("doGet service method 호출!");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
System.out.println("doPost service method 호출!");
}
}
init()
서블릿이 처음으로 요청될 때 초기화를 하는 메서드이다. 클래스를 new 해서 사용하듯 서블릿 클래스도 초기화해주어야 사용이 가능하다. 이렇게 초기화된 서블릿은 싱글톤으로 관리되어 다음에 한번 더 해당 서블릿 클래스를 호출하면 초기화가 다시 일어나는 것이 아니라 기존에 있던 서블릿 클래스를 호출한다.
service()
서블릿 컨테이너가 요청을 받고 응답을 내려줄 때 필요한 서블릿의 service 메서드이다. Servlet interface를 구현한 HttpServlet 클래스의 doGet, doPost 같은 메서드들이 호출된다.
destroy()
더 이상 사용되지 않는 서블릿 클래스는 주기적으로 서블릿 컨테이너가 destory() 메서드를 호출하여 제거한다. 이렇게 제거된 서블릿은 service 메서드들에 해당하는 모든 스레드들이 종료되거나 사용시간이 오래되어 타임아웃된 경우에는 이 클래스를 다시 사용하기 위해서는 init()을 다시 해주어야 한다.
출처: https://coding-factory.tistory.com/742
💡 실습1
package com.ssafy.hello;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Hello")
public class HelloServelt extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
@WebServlet("/Hello"): url 변경시 바로 적용이 안되기 떄문에 뭘 확인해야하냐면
다시 로드하는 것을 완료했습니다
다시보면 404페이지 열다가 일정 시간 지나면 다시 열림
빠른 적용을 하고 싶다면 서버 껐다 켜는 것을 추천
Java 코드 안에서 HTML을 사용하고 싶다면 -> 출력 객체를 얻어와야함
그렇다면 변수를 이용해서 생성 후 넘겨줄 수 있나? 가능하지만 한글은 깨지게 된다
이쪽에서 넘겨줄 때는 " text(문자열)로 넘겨주고, 브라우저는 html로 해석하는데 문자들은 utf-8로 넘긴다 " 라는 뜻
'Web > Front' 카테고리의 다른 글
[CSS] CSS 선택자 (0) | 2022.09.17 |
---|---|
[HTML] Form태그 (0) | 2022.09.17 |
[Web] Servlet 기초2 | Servlet Life-Cycle (0) | 2022.09.16 |
[Front End] 관통프로젝트2 (0) | 2022.09.08 |
[ HTML 기초] HTML 기초_시맨틱 태그 (0) | 2022.08.30 |