[공유] 0809 Jsp & Servlet강의 (JSTL사용하기, 필터와래퍼)
Chapter 06. JSTL 사용하기
**1. 변수지원
-
WebContent -> tagLibrary폴더 -> productInfo.jsp생성
-
jsp 액션태그를 이용하여 productInfo.jsp로 포워딩
<1> jstlTest.jsp의Source
**<c:set var=”PRICE” value=”500” scope=”request”/> <%– jsp 액션태그를 이용하여 productInfo.jsp로 포워딩 –%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<2> productInfo.jsp의Source
<%@ page language=”java” contentType=”text/html; charset=UTF-8” pageEncoding=”UTF-8”%> <%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %> <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
= 상품 정보 =
상품 코드: ${ CODE }상품 명 : ${NAME }
상품가격 : ${PRICE }
<%-- 상품 가격 지우기 --%>
= 상품 정보 =
상품 코드: ${ CODE }상품 명 : ${NAME }
상품가격 : ${PRICE }
- 실행 시
- 제어 흐름 if , forEach(반복문처리)**
- productInfo.jsp , PersonServlet.java는 tagLibray에 personDogInput.jsp는 Java Resources의 디폴트 팩키지에 생성
<1> personDogInput.jsp의Source
<%@ page language=”java” contentType=”text/html; charset=UTF-8”** pageEncoding=”UTF-8”%> <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<2> PersonServlet.java의Source
import java.io.IOException; import java.util.Vector;
import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class PersonServlet extends HttpServlet { private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //personDogInput.jsp에서 전송한 값을 //각각 다음의 변수에 저장 String person = request.getParameter(“person”); String dog = request.getParameter(“dog”);
//1.문자열 배열 arr에 person과 dog을 저장 String[] arr = {person, dog };
//2.Vector 객체 v를 생성하고 v에 person과 dog을 저장 Vector
//3.request 객체의 속성에 arr과 v를 각각 저장 request.setAttribute(“arr”, arr); request.setAttribute(“v”, v);
//4./tagLibrary/personDog.jsp로 포워딩 RequestDispatcher dispatcher = request.getRequestDispatcher(“tagLibrary/personDog.jsp”); dispatcher.forward(request, response); }
}
<3> productInfo.jsp의Source
<%@ page language=”java” contentType=”text/html; charset=UTF-8” pageEncoding=”UTF-8”%> <%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %> <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
EL을 이용하여 배열과 벡터의 값 출력
arr : ${arr }
v : ${v}
JSTL을 이용하여 배열의 값 출력 처리 arr :
만약에 배열의 값이 Jack이 있으면 "개 주인!!"출력
예외 메시지 : ${e.message }
예외 메시지 : ${e.message } catch문
= redirect를 이용한 색깔 바꾸기 =
------------------------------------------------------------------------------------------------------------- * 실행 시  **** ------------------------------------------------------------------------------------------------------------- **** **2-3.
예외 메시지 : ${e.message } catch문
<%-- = URL을 이용한 색깔 바꾸기 =
------------------------------------------------------------------------------------------------------------- * 실행 시  * jslOutput.jsp 클릭시  **3. 커스텀액션만들기의 네임스페이스** * 네임스페이스(namespace) : 똑같은 이름의 충돌을 방지하기 위해서 만들어 놓는 이름의 공간 p.538 **4. 필터와 래퍼** (1) 필터란? 글자 그대로 여과기 역할을 하는 프로그램 , 자바 클래스 형태로 구현해야 하는데 , 이 클래스를 필터 클래스(filter class) 웹 컨테이너는 이 클래스를 가지고 필터 객체를 만들고 , 그다음에 그 필터 객체를 초기화 요청 , 응답 요청 , 응답 * [웹 브라우저] <----------> [필 터] <----------> [웹 컴포넌트] * javax.servlet.Filter 인터페이스를 구현해야 한다 (2) 래퍼(wrapper)란 웹 브라우저와 웹 컴포넌트 사이를 오가는 요청 메시지와 응답 메시지를 포장하는 프로그램 JSTL 사용법
