Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바 내부 클래스
- 자바 스트링클래스
- Java추상클래스
- 자바 try-catch
- Express
- Java try-catch
- Java thorw
- 자바 Random클래스
- 자바 문자열 클래스
- 자바 String클래스
- Java 내부 클래스
- 코딩
- 자바 Wrapper클래스
- Java객체배열
- db
- Java업캐스팅
- 오라클
- oracle
- 자바 추상메서드
- java super( )
- Java다운캐스팅
- Java문자열 클래스
- Java 추상 메서드
- 자바 예제
- nodejs
- database
- 자바 제어문
- dbeaver
- 데이터베이스
- DBMS
Archives
- Today
- Total
코딩이란 무엇일까
54일차[JSP/Servlet](2)-서블릿,JSP사용해보기 본문
서블릿 라이프 사이클
- 클라이언트( 웹 브라우저 )가 서블릿에 요청(request) 시, 서블릿이 바로 호출되지 않는다.
- 웹 컨테이너에 해당 서블릿 클래스가 로딩되어 있지 않다면 init( ) 메서드 호출 후 service( ) 메서드 호출 & doGet( )/doPost( ) 호출
- 로딩되어 있다면 service( ) 메서드 호출
- destroy( ) 메서드를 호출하여 Servlet을 제거한다.
- JSP 페이지도 서블릿 클래스로 변환된 후 똑같은 라이프 사이클을 수행한다.
@WebServlet
- WebServlet에 경로를 입력하면 클라이언트에서, 해당 경로를 입력할 때 알아서 톰캣서버가 찾아서 실행해주게 된다.
init( )
- 서블릿이 최초로 호출되었을 때 한 번만 실행되며 서블릿 컨테이너가 자동으로 실행합니다.
- 서블릿 객체가 생성된 후, 한 번만 실행되므로 서블릿의 초기화 작업을 담당합니다.
service( )
- 클라이언트의 요청이 있을 때마다 매번 서블릿 컨테이너가 자동으로 실행합니다.
- 서블릿 실행 요청이 있을 때 마다 실행되어야 하는 내용을 구현
- 응답에 대한 모든 애용은 service( ) 메서드에 구현해야 함
HttpServletRequest request 객체
- 사용자가 HTML Form에 입력한 내용을 request 객체에서 받아온다.
- 헤더 정보, 파라미터, 쿠키, URI , URL, Body의 Stream 등을 읽어 들이는 메서드가 있다.
- getHeader(”원하는 헤더 이름”) :원하는 헤더 정보를 확인할 수 있다.
- getParameter( ) :form parameter 값을 가져온다.
HttpServletResponse response 객체
- 인자의 내용에 맞게 동적인 HTML 코드를 생성하여 response 객체에 담아 반환한다.
- getWriter( ) 메서드를 호출하여 PrintWriter 객체를 가져온 후 해당 객체에서 print, println메서드를 실행한다.
- form data를 처리한 결과를 WebPage에 생성하여 반환할 수 있다.
[예시코드]
GET 방식
package org.iclass;
@WebServlet(urlPatterns ={"/member/join"})
public class MemberJoinServlet extends HttpServlet{
private static final long serialVersionUID=1L;
private static final Logger logger= LoggerFactory.getLogger(MemberJoinServlet.class);
public void init( ) throws ServletException {
logger.info("[MyInfo]조인 서블릿 초기화");
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher=request.getRequestDispatcher("/member/join.jsp");
dispatcher.forward(request, response);
}
}
RequestDisaptcher
- 특정 자원에 처리를 요청하고 처리 결과를 얻어오는 기능을 수행하는 클래스이다.
- a.jsp로 들어온 요청을 b.jsp로 요청을 보낼 수 있다.
- 또한 a.jsp에서 b.jsp로 처리를 요청하고 b.jsp에서 처리한 결과 내용을 a.jsp의 결과에 포함시킬 수 있다.
- 요청을 보내는 방법은 forward( )와 include( ) 두 가지 방법이 있다.
forward( )
- 대상 자원으로 제어를 넘기는 역할을 한다.
- /a.jsp로 요청했을 때 /a.jsp에서 forward( )를 실행하여 /b.jsp로 제어를 넘길 수 있습니다.
- /b.jsp는 처리 결과를 최종적으로 브라우저에게 출력합니다.
RequestDispatcher dispatcher=request.getRequestDispatcher("/member/join.jsp");
dispatcher.forward(request, response);
- getRequestDispatcher("/member/join.jsp") : 해당 메서드의 인자값으로 이동할 페이지의 경로를 지정합니다.
- dispatcher.forward(request, response); :두 객체는 해당 주소에 대해 요청하고 응답하라는 뜻이 담겨있다.
post방식
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendRedirect("../");
}
- sendRedirect(”지정한 주소 또는 파일명” ) :지정한 주소 또는 파일명으로 get방식으로 이동
Comments