JSP
JSP - 웹프로그래밍
매린!
2024. 5. 7. 14:31
웹프로그래밍이란?
웹어플리케이션을 구현하는 행위
JAVA웹: JAVA 플랫폼(J2SE, J2EE)중에서 J2EE를 이용한 웹 프로그래밍
JSP(Java Server Page): HTML파일 내에 JAVA 언어를 삽입한 문서
Servlet(Server Applet): JAVA언어로 이루어진 웹프로그래밍 문서
[웹프로그램의 동작]
- 웹 서버: 클라이언트의 요청에 의해 정보를 제공해 주는 서버(정적인 자원 처리: APACHE 등)
- 별도의 구현이 필요한 로직이 있을 경우 웹 어플리케이션 서버에 요청
- 웹 어플리케이션 서버: 별도의 기능 구현 등 로직 처리를 해주는 서버(동적인 처리:Tomcat, JBOSS, NCINX 등)
- 웹 브라우저: 웹 서버에 정보를 요청하고, 웹 서버로부터 정보를 받는 매개체, 이때 HTTP 프로토콜을 사용
JSP
JSP 특징
- 동적 웹어플리케이션 컴포넌트
- .jsp 확장자
- 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용
- jsp는 서블릿으로 변환되어 실행
- MVC패턴에서 View로 이용됨
Servlet
- Servlet 특징
- 동적 앱어플리케이션 컴포넌트
- .java 확장자
- 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용
- java thread 이용하여 동작
- MVC 패턴에서 Controller로 이용됨
webapp: 정적 자원들의 루
doGet()
html내 form태그의 method 속성이 get일 경우 호출됨
웹브라우저의 주소 창을 이용하여 servlet을 요처한 경우에도 호출됨
HttpServletRequest: 클라이언트의 요청처리 객체
HttpServletResponse: 클라이언트의 응처리 객체
*setContentType(): 메서드를 호출하여 응답 방식 결정
ContextPath(컨텍스트 패스)
WAS(Web Application Server)에서 웹어플리케이션을 구분하기 위한 Path임
[Servlet 라이플사이클(생명주기)]
- Servlet 객체 생성 -> 최초 한번
- Init() 호출 -> 최초 한번
- service(), doGet(), doPoet() 호출 -> 요청 시 매번
- destroy 호출 -> 마지막 한번(자원 해제: servlet 수정, 서버 재가동 등)
HTML form 태그
HTML form 태그: 서버쪽으로 정보를 전달할 때 사용하는 태그
form 태그: Input 태그들의 값을 서버로 전송하기 위한 정보를 담음
*form 태그의 submit버튼을 클릭하여 데이터를 서버로 전송하면, servlet에서는 HttpServletRequest 객체를 이용하여 Parameter 값을 얻을 수 있
<form action = "FormEx" method="post">
action = "FormEx" -> 요청하는 컴포넌트 이름 (ex. join.jsp, info.html, HWorld)
method="post" -> 요청을 처리하는 방식 (ex. get, post)
서블릿 초기화 파라미터: ServletConfig
- 초기화 파라미터: Servlet이 생성될 때 초기에 필요한 데이터들 (ex. 특정 경로 및 아이디 정보 등
- web.xml에 기술 -> <init-param>, <param-name>, <param-value> => param-name과 param-value가 한 쌍을 이루어야 함
- Servlet파일에서는 ServletConfig 클래스 이용하여 사용 -> @WebInitParam(name="", vlaue="")
- 데이터 불러오는 방식: getInitParameter() 함수 사용
데이터 공유: ServletContext
- 여러 Servlet에서 특정 데이터를 공유해야 할 경우 context parameter 이용
- web.xml에 기술 -> <context-param>
- Servlet에서 공유하며 사용 가능
- 데이터 불러오는 방법: getServletContext() 함수 사용
웹어플리케이션 감시: ServletContextListener
- 웹어플리케이션의 생명주기를 감시하는 리스너가 있음
- ServletContextListener 메서드가 웹어플리케이션의 시작과 종료시 호출됨 -> contextInitialized(), contextDestroyed()
- ServletContextListener 인터페이스를 implements 받아야 함