2011. 2. 13. 01:35
QuntumDB가 아무리 해도 연결이 안되니 너무도 답답하더라구요..ㅠㅠ
The Network Adapter could not establish the connection   error  code:17002
이 말이 뜨면서 연동안됨..


방법 1)

JDBC와 ORACLE 연결 중 IO 예외 상황 ( IO 예외 상황: The Network Adapter could not establish the connection... )

이 될 경우가 종종 있습니다. 해결방법은... 아래 처럼 해보세요.

 

DB 와의 접속되는. Connection 쪽의 연결 IP를

"oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@192.168.123.000:1521:ORCL", "scott", "tiger"

붉은색 글씨부분을 'localhost' 말고 위에처럼 ip주소로 적어보세요.

자신의 컴퓨터 즉 연결할 DB컴퓨터의 ip확인은 시작-실행-cmd 창에서 ipconfig 를 처보면 확인가능.

 

------------------------------------------------------------------------------------------

가끔 톰캣과의 연동에서 ojdbc14.jar 파일을 못읽는 경우가 있음.

자바 나 오라클이 설치된 곳에 가서 ojdbc14.jar 파일을 톰캣의 lib폴더에 복사해보세요.

 

------------------------------------------------------------------------------------------

자신의 컴퓨터에 방화벽이 켜져있어서 그럴경우도 있음.

제어판-방화벽 에 가서 '사용안함'으로 변경후 해보세요.

 

------------------------------------------------------------------------------------------
시작 - 실행 - cmd 창에서 lsnrctl -start를 입력하신 후

 

연결이 실패 했다고 나오면


C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN 폴더에


listener.org, tnsnames.ora를 열어 보시면


현재 아이피와 포트번호가 맞는지 확인해주시면 됩니다.

--------------------------------------------------------------------------------------


연결이 실패하지 않았다면


Tomcat Server.xml 파일(resource 설정 부분)에서

 

연결 IP를 localhost로 사용하지 말고

 

tnsnames.ora 파일에서


(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))


부분의 HOST IP를 사용해보도록 한다.

--------------------------------------------------------------------------------------------------
출처 : http://www.cyworld.com/prizm0911/2598829님 홈피



전.. 이래도 안됐습니다...ㅠㅠ 방법 2)
알 수 없어서 
cmd - >tnsping orcl 을 입력해 보니
리스너가 없더군요..ㅠㅠ

ORA-12541: TNS:리스너가 없습니다.
그래서

시작->실행->cmd->lsnrctl start
명령어로 리스너를 실행시켰습니다..ㅠㅠ
그래도,, 여전히 연결이 안되더군요..ㅠㅠ


결국 마지막 방법으로 웹 서핑 하다 찾은 방법.


시작->실행->cmd->lsnrctl services

여기에 들어가 보니,
제가 알던 포트번호랑 다르더군요..ㅠㅠ
포트번호를 바꿔주니 , 실행이 되네요.ㅠ

이유는 왜 일까요??? 궁금하네요.ㅠ





Posted by Triany
2011. 2. 8. 00:14

슈뢰딩거의 고양이

위키백과, 우리 모두의 백과사전.
산 고양이와 죽은 고양이가 상자 안에 공존하고 있다?
양자역학
\Delta x \, \Delta p \ge \frac{\hbar}{2}
주요 개념

파동함수 · 이중성 · 간섭
불확정 원리 · 배타 원리
변환 이론 · 결풀림
대응 원리 · 측정
중첩 · 양자얽힘· 상호보완성 · 제만 효과

실험

이중 슬릿 실험
데이비슨-거머 실험
슈테른-게를라흐 실험
벨 부등식
포퍼 실험
슈뢰딩거의 고양이

방정식

슈뢰딩거 방정식
파울리 방정식
클라인 고든 방정식
디락 방정식

고등 이론

밀도범함수 이론
섭동이론
양자 마당 이론
위트만 공리
양자전기역학
양자색역학
양자 중력
파인만 도표

해석

코펜하겐 · 앙상블
숨은 변수 · 트랜색션
다세계 · EPR 역설

과학자

플랑크 · 슈뢰딩거
하이젠베르크 · 보어 · 파울리
디랙 · · 보른
드브로이 · 폰노이만
아인슈타인 · 파인먼
에버렛 · 펜로즈

응용
양자정보
(양자 컴퓨터 · 양자암호 · 양자통신)

NMR(핵자기공명)

v  d  e  h

슈뢰딩거의 고양이(Schrödingers Katze)는 1935년오스트리아물리학자 에르빈 슈뢰딩거양자역학의 불완전함을 보이기 위해서 고안한 사고 실험이다. 양자역학에 의하면, 미시적인 세계에서 일어나는 사건은 그 사건이 관측되기 전까지는 확률적으로밖에 계산할 수가 없으며 가능한 서로 다른 상태가 공존하고 있다고 말한다. 그런데 슈뢰딩거가 제안한 이 사고 실험은 우연적으로 일어나는 미시적인 사건이 거시적 세계에 영향을 미칠 때 어떻게 되는가를 보여주는 것으로, 하나의 패러독스로서 거론된다.

이 사고 실험에는 방사능을 가진 원자핵과 고양이 한 마리가 등장한다. 고양이는 외부 세계와 완전히 차단된 상자 속에 들어있고, 이 상자는 독가스가 들어있는 통과 연결되어 있다. 독가스는 벨브에 가로막혀 상자 속으로 들어갈 수 없으며, 독가스가 든 통 역시 외부 세계와 완전히 차단되어 벨브가 열리는지 볼 수 없다. 이 벨브는 원자핵이 든 기계 장치와 연결되어 있는데, 그 기계 장치는 원자핵이 붕괴하여 방사능을 방출하면 그것을 검출하여 벨브를 연다. 벨브가 열린다면 고양이는 독가스를 마셔 죽게 된다. 그리고 처음에 원자핵은 단위 시간 당 50%의 확률로 붕괴하도록 세팅되어 있다. 그렇다면 그 단위 시간이 흐른 후에 고양이는 50%의 확률로 살아 있거나 죽어 있을 것이다.

양자역학에 따르면 관측하지 않은 핵은 '붕괴한 핵'과 '붕괴하지 않은 핵'의 중첩으로 설명되지만, 한 시간 후 상자를 열었을 때 관측자가 볼 수 있는 것은 "붕괴한 핵과 죽은 고양이" 또는 "붕괴하지 않은 핵과 죽지 않은 고양이"뿐이다. 그럼 언제 이 계의 중첩 상태가 끝나고 하나의 상태로 고정되는가?

일반적인 믿음과는 달리, 슈뢰딩거는 "죽기도 하고 살기도 한 고양이"가 진짜로 존재한다고 주장했던 것은 아니다. 오히려 그는 양자역학은 불완전하며 현실적이지 않다고 생각했다. 고양이는 반드시 살아있거나 죽은 상태여야 하기 때문에(그 둘 사이의 어디쯤이 아닌), 양성자 역시 붕괴했거나 붕괴하지 않았거나 둘 중 하나라는 것이다.

일반적으로 받아들여지는 코펜하겐 해석에 따르면 이 실험에서는 관측자가 상자를 여는 동시에 상태가 고정된다. 즉 대상에 대한 관측 행위가 대상의 상태를 결정한다는 것이다.

다중 세계 해석에서는 핵이 붕괴하는 순간이 분기점이 되어 고양이가 살아 있는 세계와 고양이가 죽은 세계가 분리되어 평행 우주가 되고 서로에게 영향을 주지 않는다고 해석한다.

찾아보기 [편집]



















슈뢰딩거의 고양이 [Schrödinger's cat]
요약
오스트리아의 물리학자 슈뢰딩거가 설명한 이론으로, 밀폐된 상자 속에 독극물과 함께 있는 고양이의 생존 여부를 이용하여 양자역학의 원리를 설명한 것이다. 상자 속 고양이의 생존여부는 그 상자를 열어서 관찰하는 여부에 의해 결정되므로 관측행위가 결과에 영향을 미친다는 사실을 이 사고실험을 통해 설명하고 있다. 
본문
슈뢰딩거오스트리아물리학자양자역학을 서술하는 네가지 방법 중 가장 기초적이고 최초의 방정식을 고안해 낸 사람이다. 슈뢰딩거는 말년에 과학철학을 공부했는데 그가 내세운 슈뢰딩거의 고양이는 만약 양자법칙이 거시세계에까지 확장된다면 어떻게 될까를 보여준다.

그 내용은 다음과 같다. 어떤 고양이가 밀폐된 상자 안에 갇혀 있다. 상자 안에는 1시간에 2분의 1 확률로 1개 분해되는 알파입자 가속기가 있고 청산가리 통이 들어 있다. 만약 알파입자가 방출되어 청산가리 통의 센서가 감지하면 청산가리 통은 깨지고 고양이는 죽고 만다. 1시간 후 과연 고양이는 죽었을까 살았을까?

알파입자는 미시세계의 것이고 양자역학으로 서술된다. 그것이 거시세계의 고양이를 죽이느냐 살리느냐의 기로에 놓여 있는 것이다. 각 물리학적 입장에 따라 고양이가 죽었을까 살았을까에 대한 답변은 다르다. 고전역학자들은 실재론자들이며 우리가 그것을 확인하든 안 하든 고양이는 죽었거나 안 죽었거나이다.

1시간 후의 일은 어떻게든 결정되어 있으며 그것은 관찰과 무관하다고 주장할 것이다. 하지만 양자론자들은 관측에 지배받는다고 이야기한다. 고양이는 죽었거나 살았거나이고 우리가 그것을 열어봤을 때에만 의미를 지닌다. 즉, 그것의 결과는 관측에 의존한다. 하나는 결정론적인 사고를 기초로 하고 있으며 다른 하나는 비결정론적인 사고를 취하고 있다.
이처럼 슈뢰딩거 고양이 사고실험은 양자 물리학에서 관측행위가 무엇을 의미하는지를 생각하게 되는 계기가 되었다.

이외에도 가능세계론과 통계적 입장이 있다. 가능세계론은 기본적으로 확률에 의한 세계관을 받아들인다. 그들에 의하면 상자를 여는 순간 세계는 고양이가 죽은 세계와 죽지 않은 세계의 두 갈래로 나뉜다. 통계적 입장 역시 확률론을 받아들인다. 만약 어떤 이가 여러번 이 실험을 반복한다면 어떤 통계적인 값에 이르게 될 것이다. 그것이 바로 고양이가 죽을 확률이라는 것이다.

이 논쟁은 양자역학의 기초를 다져 오늘날 톱쿼크와 같은 물질 기본단위 연구의 길을 트는 동시에 철학사상에도 지대한 영향을 미쳤다. 슈뢰딩거, 막스 보른, 오토 한 등 양자역학을 설명한 독일 괴팅겐대학교 교수들은 통근기차 속 토론에서 이런 복잡하고 심오한 이론체계를 확립했다고 한다.







Posted by Triany
2011. 1. 27. 11:13


톰캣 다운 받을 시 받았던 파일에서 lib 폴더로 가 위의 두 파일을 복사하여
[WEB-INF]-[lib] 에 넣는다.

Web App Libraries에 여러 jar 파일이 추가된 것을 볼 수 있다.


JSTL
JSP는 개발자가 직접 <jsp:include>와 같이 태그를 작성할 수 있는 기능을 제공하는데 이를 커스텀 태그라고 한다. 커스텀 태그 중에서 가장 많이 사용되는 것들을 모아서 JSTL이라는 규약을 만들었다. JSP페이지에서 논리적인 판단, 반복문의 처리, 데이터 베이스등의 처리를 하는 코드를 깔끔하게 작성하기 위해서 커스텀 태그를 작성해왔는데, 이런 중복되는 노력을 없애기 위해서 나온 것이 바로 JSTL(JSP Standard Tag Library)이다.

코어태그(p.479)

>JSTL이 제공하는 태그의 종류

라이브러리

하위기능

접두어

관련 URI

코어

변수 지원

흐름 제어

URL 처리

c

http://java.sun.com/jsp/jstl/core

XML

XML 코어

흐름 제어

XML 변환

x

http://java.sun.com/jsp/jstl/xml

국제화

지역

메시지 형식

숫자 및 날짜 형식

fmt

http://java.sun.com/jsp/jstl/fmt

데이터베이스

SQL

sql

http://java.sun.com/jsp/jstl/sql

함수

컬렉션 처리

fn

http://java.sun.com/jsp/jstl/function

※이번 프로젝트에서는 코어를 중심으로 사용.

>코어 태그 라이브러리

기능분류

태그

설명

변수지원

set

JSP에서 사용될 변수를 설정한다.

remove

설정한 변수를 제거한다.

흐름제어

if

조건에 따라 내부 코드를 수행한다.

choose

다중 조건을 처리할 때 사용된다.

forEach

컬렉션이나 Map의 각 항목을 처리할 때 사용된다.

forTokens

구분자로 분리된 각각의 토큰을 처리할 때 사용된다.

URL처리

import

URL을 사용하여 다른 자원의 결과를 삽입한다.

redirect

지정한 경로로 리다이렉트 한다.

url

URL을 재작성한다.

기타 태그

catch

예외 처리에 사용된다.

out

JspWriter에 내용을 알맞체 처리한 후 출력한다.

코어 태그 라이브러리를 사용하려면 JSP페이지에 다음과 같이 taglib디렉티브를 추가해 주어야 한다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>




<c:set>태그

<c:set>태그는 EL 변수의 값이나 EL변수의 프로퍼티의 값을 지정할 때 사용한다.
page, request, session, application의 네 영역에 저장되어 있는 객체를 <jsp:useBean>태그와 <jsp:setProperty>태그를 사용하여 JSP코드 내에서 사용될 변수를 지정하고 변수 프로퍼티의 값을 지정할 수 있는 것과 마찬가지로, <c:set>태그는 JSTL의 태그에서 사용될 변수의 값을 처리할 때 사용된다.


   <c:set   var="varName"  value="varValue" [scope="영역"] />
   <c:set   var="varName"  [scope="영역"]>varValue</c:set> 
var: 값을 지정할 EL 변수의 이름
value : 변수의 값을 지정한다. 표현식, EL, 정적인 텍스트를 사용하여 값을 지정할 수 있다.
scope : 변수를 지정할 영역을 지정한다. 값은 page, request, session, application 중 하나가 온다. 지정하지 않을 경우 기본값은 page이다.


test.jsp
<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
p { color: blue;  font-size: 14pt;}
</style>
</head>
<body>
        <p> c:set테스트 </p>
        <c:set var="name"  value="홍길동" scope="session" />
        c:set 이후 name: ${name}<br>
       c:set 이후 requestScope.name: ${requestScope.name}<br>
       c:set 이후 sessionScope.name: ${sessionScope.name}<br>
       <c:remove var = "name" />
        c:remove 이후 name: ${name}<br/>
</body>
</html>







<c:if> 태그
 
 <c:if test="조건">
  ....
 </c:if>

test.jsp
<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
p { color: blue;  font-size: 14pt;}
</style>
</head>
<body>
        <p> c:set테스트 </p>
        <c:set var="name"  value="홍길동" scope="session" />
        c:set 이후 name: ${name}<br>
        c:set 이후 requestScope.name: ${requestScope.name}<br>
        c:set 이후 sessionScope.name: ${sessionScope.name}<br>
        <c:remove var = "name" />
        c:remove 이후 name: ${name}<br/>
        <c:if test ="${empty name}">
             name값이 설정되어 있지 않습니다.<br>
        </c:if>
        <c:if test ="${ name == null }" >
             name값이 설정되어 있지 않습니다.<br>
        </c:if>
        <c:set var="a" value="100"/>
        <c:if test="${ a>50 }">
                                    예, a의 값은 50보다 큽니다.</br>
              a의 값은 ${a}입니다.
        </c:if>
</body>
</html>






<c:choose><c:when><c:otherwise>
<c:choose>태그는 자바의 switch 구문과 if-else 블록을 혼합한 혀태로서 다수의 조건문을 하나의 블록에서 수행하고자 할 때 사용된다.
 
   <c:choose>
       <c:when test="${memver.level == 'trial'}">
        ........
       </c:when>
       <c:when test="${memver.level == 'regular'}">
        ........
       </c:when>
       <c:when test="${memver.level == 'provider'}">
        ........
       </c:when>
       <c:otherwise>
        .......
       </c:otherwise>
   </c:choose>

test.jsp
<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
p { color: blue;  font-size: 14pt;}
</style>
</head>
<body>
 <p> c:choose 테스트 </p>
 <c:choose>
    <c:when test = "${param.type == 'in' }">
                    내부검색을 요청하였습니다.
    </c:when>
       <c:when test = "${param.type == 'out' }">
                             외부검색을 요청하였습니다.  
       </c:when>
       <c:otherwise>
                            요청정보가 전달되지 않았습니다.
       </c:otherwise>
    </c:choose>        
      
</body>
</html>



    http://localhost:8080/test.jsp?type=in 을 사용하여 파라메터를 넘겨 줄 수있다.




<c:forEach>태그
<c:forEach> 태그는 배열, Collection 또는 Map에 저장되어 있는 값들을 순차적으로 처리할 때 사용할 수 있는 태그로서, 자바의 for, do-while 등을 대신해서 사용할 수 있다. <c:forEach>태그의 기본적인 사용 방법은 다음과 같다.
 
    <c:forEach var ="변수"  item="아이템">
       ......
       <tr>
          <td align="right"    bgcolor="#ffffff">
          ${변수사용}
          </td>
      .....
   </c:forEach>


<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
p { color: blue;  font-size: 14pt;}
</style>
</head>
<body>
   <p> c:forEach 테스트 </p>
   <%
        String[] list={"사과", "바나나", "키위"};
        session.setAttribute("fruits", list);
   %>
   <ul>
      <c:forEach var="f" items="${fruits}">
         <li> ${f}</li> 
      </c:forEach>
   </ul> 
</body>
</html>










<c:forEach>태그를 selection과 혼합


<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
p { color: blue;  font-size: 14pt;}
</style>
</head>
<body>
   <p> c:forEach 테스트 </p>
   <%
        String[] list={"사과", "바나나", "키위"};
        session.setAttribute("fruits", list);
   %>
   <ul>
      <c:forEach var="f" items="${fruits}">
         <li> ${f}</li> 
      </c:forEach>
   </ul>
   
     과일을 선택하세요:
   <select name="choice">
     <c:forEach var="f" items="${fruits}">
         <option>${f}</option>
     </c:forEach>
   </select>        
        
      
</body>
</html> 








JAVABEAN 객체와 혼합..
Member.java
package simple.web.model;
import java.io.Serializable;
/*
 * JAVA Bean객체를 만들 수 있는 클래스를 만든다.
 * JAVA Bean이란?
 *  1) Encapsulation 구현 O
 *  2) getter, setter O
 *  3) default 생성자 O
 *  4) Serializable 구현.
 */
public class Member implements Serializable {
 private String id;
 private String passwd;
 private String name;
 private String email;
 private String phone;
 private String address;
 private String sex;
 private String[] interest;
 
 
 public Member() {
  super();
 }
 
 public Member(String id, String passwd, String name, String email,
   String phone, String address) {
  super();
  this.id = id;
  this.passwd = passwd;
  this.name = name;
  this.email = email;
  this.phone = phone;
  this.address = address;
 }
 public Member(String id, String passwd, String name, String email,
   String phone, String address, String sex, String[] interest) {
  super();
  this.id = id;
  this.passwd = passwd;
  this.name = name;
  this.email = email;
  this.phone = phone;
  this.address = address;
  this.sex = sex;
  this.interest = interest;
 }
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getPasswd() {
  return passwd;
 }
 public void setPasswd(String passwd) {
  this.passwd = passwd;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 public String getPhone() {
  return phone;
 }
 public void setPhone(String phone) {
  this.phone = phone;
 }
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 public String[] getInterest() {
  return interest;
 }
 public void setInterest(String[] interest) {
  this.interest = interest;
 } 
}
test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "simple.web.model.*, java.util.*"%>
<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
p { color: blue;  font-size: 14pt;}
</style>
</head>
<body>
   <p> c:forEach 테스트 </p>
   <%
        String[] list={"사과", "바나나", "키위"};
        session.setAttribute("fruits", list);
        ArrayList<Member> members = new ArrayList<Member>();
        members.add(new Member("kim", "111","김영숙",
          "yskim@korea.com", "010-1111-2222","address"));
        members.add(new Member("lee", "111","이순신",
          "yskim@korea.com", "010-1111-2222","address"));
        members.add(new Member("hong", "111","홍길동",
          "yskim@korea.com", "010-1111-2222","address"));
        members.add(new Member("park", "111","박찬호",
          "yskim@korea.com", "010-1111-2222","address"));
        request.setAttribute("member", members); //m이라는 객체를 request 스콥에 박아넣음
   %>
       회원목록<br/>
   <ul>
       <c:forEach var="m" items="${member}">
          <li>회원ID  : ${m.id}    &nbsp;&nbsp;
                패스워드: ${m.passwd} &nbsp;&nbsp;
                                     회원명     : ${m.name}  &nbsp;&nbsp;
                이메일     : ${m.email} &nbsp;&nbsp;<br/>
               전화번호: ${m.phone} &nbsp;&nbsp;
                주소          : ${m.address} &nbsp;&nbsp;
          </li>    
       </c:forEach>
   </ul>
   </body>
</html>
 
<!-- 여기서 m.id라는 것은 member에 있는 getId라는 것을 호출해서 출력한다.
                                       그러하기에 반드시 JAVA BEAN 객체여야 한다.
  -->






<c:forEach>와 <c:forTokens>태그
<c:froTokens>태그는 items 속성으로 전달받은 문자열을 구분자를 이용해서 나눈 뒤 나뉘어진 각 문자열을 var속성에 명시한 변수에 저장한다. 예를 들어, 아래 코드는 item을 속성의 값을 (/)로 나눈 "red", "green", "blue"문자열을 color변수에 차례로 대입한다.
 
  <c:forTokens var="color"   items="red,green,blue" delims=",">
       ${color}
  </forTokens}


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "simple.web.model.*, java.util.*"%>
<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
p { color: blue;  font-size: 14pt;}
</style>
</head>
<body>
   <p> c:forEach 테스트 </p>
   <%
        String wishList="집,돈,맥북,아이폰";
        request.setAttribute("wish", wishList);
       
        String wishList2="토끼/사슴/호랑이/앵무새";
        request.setAttribute("wish2", wishList2); 
   %>
       희망목록
   <ol>
        <c:forEach var="w" items="${wish}">
            <li>${w}</li>
        </c:forEach>
   </ol>
   <!-- forEach는 ,(콤마)를 기준으로 자른다. -->
       구분자를 지정해 준 forToken
   <ol>
         <c:forTokens var="w" items="${wish2}" delims = "/">
                       <li>${w}</li>
         </c:forTokens>
   </ol>
 </body>
</html>  








<c:catch>태그
<c:catch>태그는 발생된 예외를 EL 변수에 저장할 때 사용되는 태그이다.

  <c:catch   var="exName">
       ......
       예외가 발생할 수 있는 코드 
       .......
  </c:catch>
      .....
   ${exName}   사용

<%@ 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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
p { color: blue;  font-size: 14pt;}
</style>
</head>
<body>
   <c:catch var="ex">
     <% int b = 10/0;%>
  </c:catch>
  <c:if test="${not empty ex}">
          ${ex}
  </c:if>
  </body>
</html>
















Posted by Triany