728x90
Servlet Life Cycle
- 이 메소드들은 재정의해서 사용할 수 있지만 service 메서드는 재정의시 주의가 필요하다. 밑의 그림과 같은 순서로 호출되도록 만들어졌기 때문에 재정의할 때 다음 메서드 호출을 생략한다면 예상한대로 진행되지 않을 수 있다.
- doGet, doPost 중 하나만 만든 상태에서 없는 메소드 방식으로 접근하면 405 Error(허용되지 않는 메소드 에러)가 발생한다.
- init() : 서블릿 객체 생성 후 초기화될 때 한 번 호출된다.
- service : 요청될 때마다 호출된다.
- service(ServletRequest req, ServletResponse res)
- service(HttpServletRequest req, HttpServletResponse res)
- doGet(HttpServletRequest req, HttpServletResponse res)
- doPost(HttpServletRequest req, HttpServletResponse res)
- destroy() : 서비스 중지, 변경 시 한 번 호출된다.
Servlet 관련 주요 API
- 문서 : javax.servlet.*
Servlet > GenericServlet > HttpServlet > 사용자Servlet
- doGet(), doPost()
ServletRequest > HttpServletRequest : 요청 객체
- 한글 인코딩 : request.setCharacterEncodint("utf-8")
- 파라미터 가져오는 메서드
- 단일값 - request.getParameter("name") : String
- 다중값 - request.getParameterValues("name") : String[]
- 이름만 - request.getParameterNames() : Enumeration
- 모든 데이터 - request.getParameterMap() : Map<String,String>
- 프로젝트 context 주소 가져오기 : request.getContextPath()
ServletResponse > HttpServletResponse : 응답 객체
- meme type, 한글 인코딩 : response.setContentType("text/html;charset=utf-8")
- 응답 출력스트림 생성 : reponse.getWriter() : PrinterWriter
HttpSession
- 세션 얻기 : request.getSession() : HttpSession
- 인자값으로 true : 세션 없으면 생성, 있다면 기존 세션 반환 (ex. 로그인)
- 인자값으로 false : 세션 없으면 null, 있다면 기존 세션 반환 (ex. 로그아웃)
ServletContext
- 모든 서블릿/jsp가 공유할 수 있다.
- setAttribute()
- getAttribute("name")
- removeAttribute("name")
'기록 > BACKEND' 카테고리의 다른 글
[WEB] 파라미터와 어트리뷰트 (0) | 2022.04.04 |
---|---|
[WEB] 요청과 응답의 Scope (0) | 2022.04.04 |
[WEB] Java에서 DB연결하기 (0) | 2022.04.02 |
[WEB] MVC Pattern (0) | 2022.03.29 |
[WEB] DTO Pattern (0) | 2022.03.28 |
댓글