getattribute~~setattribute~~
4가지?
요청된 정보가 다가는 것이 forward
내장객체들
---PetsInput.html
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html;charset=euc-kr">
<TITLE>아이 러브 펫</TITLE>
</HEAD>
<BODY>
<FORM ACTION=PetsResult.jsp>
아이디: <INPUT TYPE=TEXT NAME=ID><BR><BR>
다음 중 회원님이 키우고 있는 애완 동물을 선택하십시오.<BR><BR>
개<INPUT TYPE=CHECKBOX NAME=ANIMAL VALUE="개">
고양이<INPUT TYPE=CHECKBOX NAME=ANIMAL VALUE="고양이">
금붕어<INPUT TYPE=CHECKBOX NAME=ANIMAL VALUE="금붕어"><BR><BR>
<INPUT TYPE=RESET VALUE="취소">
<INPUT TYPE=SUBMIT VALUE="확인">
</FORM>
</BODY>
</HTML>
<!-- 실행결과 아이디 입력값과
체크한 값이 출력된다. -->
---PetsResult.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
request.setCharacterEncoding("EUC-KR");
%>
아이디 : ${param.ID}<br/>
선택한 동물 : ${paramValues.ANIMAL[0]}
${paramValues.ANIMAL[1]}
${paramValues.ANIMAL[2]}
--- CookieDataWriter.jsp
<%@page contentType="text/html; charset=euc-kr" %>
<%
Cookie cookie = new Cookie("NAME", "John");
response.addCookie(cookie);
%>
<HTML>
<HEAD><TITLE>쿠키 데이터 저장 프로그램</TITLE></HEAD>
<BODY>
쿠키 값이 설정되었습니다.
<a href="CookieDataReader.jsp">쿠키값 확인</a>
</BODY>
</HTML>
--- CookieDataReader.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
request.setCharacterEncoding("EUC-KR");
%>
NAME 쿠키 데이터의 값은? ${cookie.NAME.value}<br/>
요청 URL: ${pageContext.request.requestURI}<br/>
요청 URL: ${pageContext.request.requestURL}<br/>
<h1>호스트 위치까지</h1>
--- Operators.jsp
<%@page contentType="text/html; charset=euc-kr" %>
<HTML>
<HEAD><TITLE>익스프레션 언어 연산자 연습</TITLE></HEAD>
<BODY>
X = ${param.NUM1}, Y = ${param.NUM2} <BR><BR>
X + Y = ${param.NUM1 + param.NUM2} <BR>
X - Y = ${param.NUM1 - param.NUM2} <BR>
X * Y = ${param.NUM1 * param.NUM2} <BR>
X / Y = ${param.NUM1 / param.NUM2} <BR>
X % Y = ${param.NUM1 % param.NUM2} <BR><BR>
X가 더 큽니까? ${param.NUM1 - param.NUM2 > 0} <BR>
Y가 더 큽니까? ${param.NUM1 - param.NUM2 < 0} <BR><BR>
X와 Y가 모두 양수입니까? ${(param.NUM1 > 0) && (param.NUM2 > 0)} <BR><BR>
X와 Y가 같습니까? ${param.NUM1 == param.NUM2? "예" : "아니오"} <BR> <BR>
</BODY>
</HTML>
--- 결과보기위한작업
http://localhost/photo/EL/pest/Operators.jsp?NUM1=10&NUM2=5
-- 결과
X = 10, Y = 5
X + Y = 15
X - Y = 5
X * Y = 50
X / Y = 2.0
X % Y = 0
X가 더 큽니까? true
Y가 더 큽니까? false
X와 Y가 모두 양수입니까?
true
X와 Y가 같습니까? 아니오
---- CharOperators.jsp
<%@page contentType="text/html; charset=euc-kr" %>
<HTML>
<HEAD><TITLE>익스프레션 언어 연산자 연습</TITLE></HEAD>
<BODY>
${param.NUM1}을 ${param.NUM2}로 나눈 몫은? ${param.NUM1 div param.NUM2} <BR> <!-- div / 나누기-->
나머지는? ${param.NUM1 mod param.NUM2} <BR><BR> <!-- mod % 나머지 -->
둘 다 양수입니까? ${(param.NUM1 gt 0) and (param.NUM2 gt 0)} <BR>
둘 다 음수입니까? ${(param.NUM1 lt 0) and (param.NUM2 lt 0)} <BR>
</BODY> <!-- < > <= >= lt gt le ge, == != eq ne-->
</HTML>
---Winners.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<%
String winners[] = new String[3];
// int i [] = new int[5];
winners[0] = "이수현";
winners[1] = "정세훈";
winners[2] = "김진희";
request.setAttribute("WINNERS", winners);// 값을저장
RequestDispatcher dispatcher = request.getRequestDispatcher("WinnersView.jsp");
dispatcher.forward(request, response);
%>
---WinnersView.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<HTML>
<HEAD><TITLE>우승자 명단</TITLE></HEAD>
<BODY>
<H3>우승자 명단</H3>
1등. ${WINNERS[0]} <BR>
2등. ${WINNERS[1]} <BR>
3등. ${WINNERS[2]} <BR>
</BODY>
</HTML>
--- Fruits.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<%@page import="java.util.*" %>
<%
ArrayList<String> items = new ArrayList<String>();
items.add("딸기");
items.add("오렌지");
items.add("복숭아");
request.setAttribute("FRUITS", items);
RequestDispatcher dispatcher = request.getRequestDispatcher("FruitsView.jsp");
dispatcher.forward(request, response);
%>
--- FruitsView.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<HTML>
<HEAD><TITLE>인기 상품 목록</TITLE></HEAD>
<BODY>
<H3>이달에 가장 많이 팔린 과일입니다.</H3>
1위. ${FRUITS[0]} <BR>
2위. ${FRUITS[1]} <BR>
3위. ${FRUITS[2]} <BR>
</BODY>
</HTML>
--- ProductInfo.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<%@page import="el.ProductInfo" %>
<%
ProductInfo product = new ProductInfo();
product.setName("초코케이크 3호");
product.setPrice(20000);
request.setAttribute("PRODUCT", product);
RequestDispatcher dispatcher = request.getRequestDispatcher("ProductInfoView.jsp");
dispatcher.forward(request, response);
%>
---ProductInfoView.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<HTML>
<HEAD><TITLE>상품 정보</TITLE></HEAD>
<BODY>
<H3>상품 정보</H3>
상품명: ${PRODUCT.name} <BR>
가격: ${PRODUCT.price}원 <BR>
</BODY>
</HTML>
----
web.xml은???
없으면 복사해서 사용 D폴트로
web.xml의 추가기능(잘만든틀을 가지고 만들고, 문법을 만드는데 쓰이고,
회사간 표준을 정한다.)
<jsp-config>
<taglib>
<taglib-uri>http://localhost/photo/math-functions.tld</taglib-uri>
// 호스트 프로젝트이름 // tlds저장된이름
<taglib-location>tlds/math-functions.tld</taglib-location>
//폴더명//.tld
</taglib>
</jsp-config>
--- SquareRoot.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@taglib prefix="m" uri="http://localhost/photo/math-functions.tld" %>
<%
request.setCharacterEncoding("EUC-KR");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>제곱근 구하기</title>
</head>
<body>
${param.NUM }의 제곱근은?${m:squareroot(param.NUM) }
</body>
</html>
-- 실행 : http://localhost/photo/EL/pest/SquareRoot.jsp?NUM=400
400의 제곱근은?20.0
--- Sigma.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<%@taglib prefix="m" uri="/math-functions.tld"%>
<HTML>
<HEAD><TITLE>주어진 범위의 합 구하기</TITLE></HEAD>
<BODY>
${param.NUM1}부터 ${param.NUM2}까지의 합은? <BR><BR>
답: ${m:total(param.NUM1, param.NUM2)}
</BODY>
</HTML>
--- 실행 http://localhost/photo/EL/pest/Sigma.jsp?NUM1=1&NUM2=14
결과 : 1부터 14까지의 합은?
답: 105
-- math-functions.tld
<taglib xmlns="http://java.sun.com/xml/ns/javaee" version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>math</short-name>
<function>
<name>squareroot</name>
<function-class>java.lang.Math</function-class>
<function-signature>double sqrt(double)</function-signature>
</function>
<function>
<name>total</name>
<function-class>el.MyMath</function-class>
<function-signature>int sum(int, int)</function-signature>
</function>
</taglib>