Servlet 프로그래밍의 문제점
- 문자열을 사용해 HTMl과 자바스크립트로 화면을 구현해서 복잡한 화면구성을 문자열로 표현하는것이 비효율적이다
- 유지관리가 어려움
- Business 로직과 presentation을 분리하자
- JSP는 HTML을 중심으로 JAVA프로그램과의 유기적인 연결을 지원한다
JSP 처리과정
- 변환단계
- 컴파일
- 실행
JSP 구성요소
- <%-- 주석(comment) %>
- <%@ 지시어(directives) %> //jsp 파일의 속성정의
- <%= 표현식(expression) %>
- <% Scriptlet(Java code) %>
- <%! 선언(declaration) %>
- <jsp:include action tag />
- <mytag:print custom tag />
- <c:forEach JSTL(JSP Standard Tag Library) />
- ${param.user_id} 표현 언어(Expression Language: EL)
지시어
- JSP파일에 다른 HTMl이나 JSP 문서를 포함하기 위한 기능을 제공
Action
- JSP페이지간 흐름을 제어 , 자바 빈즈 컴포넌트와 상호작용을 지원한다
JSP의 내장 객체 리스트
- request , response , session등 객체가 존재
- request : 사용자요청과 관련된 기능을 제공하는 내장객체 폼을 이용한 값을 JSP에서 가져올때 사용
- response : 응답정보를 저장
- session : 접속하는 사용자 별로 따로생성되는 세션
Application
- 다양한 유형의 메서드를 제공하므로 관리 기능의 웹 개발에 유용하다
요약
- application: 모든 사용자가 공유하는 데이터를 저장할 수 있으며, Tomcat이 종
료될 때 까지 데이터를 유지
- session: 사용자마다 분리된 저장 영역이 있으며, 같은 세션의 페이지들에서
공유되는 정보를 관리
- request: forward 방식으로 연결되는 페이지들에서 공유되는 정보를 관리
JAVA Beans
- 자바의 VO와 같은 개념
- 속성별로 setter/getter를 가짐
- 인자없는 생성자를 가지며 다른생성자도 추가할수있음
- 자바빈즈 클래스를 생성하고 JSP에서 아래 코드를 추가하면됨
<jsp:useBean id="[bean 이름]" class="[class 이름]" scope="[범위]" />
<jsp:useBean id="lginfo" class="ch02.ex04.LoginBean" />
<jsp:setProperty name="lginfo" property="*" /> …
<div align="center">
<h2>로그인 예제</h2>
<hr>
<%
if (lginfo.checkUser() == true)
out.println("로그인 성공!!");
else
out.println("로그인 실패!!");
%>
<hr>
사용자 아이디 : <jsp:getProperty property="login" name = "lginfo"/>
사용자 패스워드 : <%=lginfo.getPasswd()%>