★ 프리젠테이션 로직에 들어간다.
★ 디폴트 객체의 스코프
1. page : 한 JSP페이지에서만 사용가능
: response, out, config, page, exception
2. request : 다른 페이지로 전달(이동, forward) 되는 경우에 이동된 페이지에서도 사용 가능
setAttribute() 메소드를 이용해서 어떤 정보를 저장해 놓으면 다른 페이지에서도 사용 가능
: request
3. session : 객체 세션이 사용되는 한, 여러 페이지에서 사용할 수 있다.
1번 페이지에서 필요한 정보들을 session 개체에 저장하면, 다른 페이지들에서도 활용 가능
로그인 정보 등..
: session
4. application : 웹 응용 프로그램에 소속된 모든 페이지들이 사용할 수 있다.
: application
★ 변수 선언
스크립트렛(<% ~ %>) 에서 정의한 변수는 나중에 _japService() 메소드의 지역 변수로
선언(<%! ~ %>) 에서 정의한 변수는 나중에 서블릿 클래스의 멤버 필드로 바뀐다.
즉, 하나의 jsp 문서에서 여러 개의 <% ~ %> 안에 있는 변수는 _japService() 메소드 안에 있는
것이므로 위의 스크립트렛에서 정의한 변수를 아래의 스크립트렛에서 사용할 수 있다.
변수를 선언해서 사용하는 경우는 멤버 메소드에서 그 변수를 사용하는 경우를 빼고는 별로 없다.
★ 폼에서 한글 데이터를 전송 받아서 사용할 때 한글이 깨지는 경우
jsp문서에서 한글 데이터를 처리하기 전 - 가능하면 최상위에 - 에 다음과 같이 추가
request.setCharacterEncoding("euc-kr");
들어오는 정보를 한글 처리해 달라는 것.
예제)))))
<!--
/******************************************************************************
* 파일 : select-items.html
* 용도 : 폼에서 jsp로의 데이터 전송 테스트
* 작성자 : 성홍제
* 작성일 : 2006. 08. 29
* Version : 1.0
******************************************************************************/
-->
<html>
<head>
<title>JSP POST TEST</title>
</head>
<body>
<center>
<h2>JSP POST 테스트</h2>
</center>
<form method=POST action=select-items.jsp>
이름 <input type=input name=name><br>
주소 <input type=input name=addr> <br><br>
다음 사항을 선택해주세요.<br>
사용중인 운영 체제는 ? <br>
<select name=os size=3 multiple>
<option value="win32">윈도우즈
<option value="linux">리눅스
<option value="solaris">솔라리스
<option value="misc">기타
</select>
<br><br>사용중인 컴퓨터 하드웨어는 ? <br>
<select name=hw>
<option value="pentium">펜티엄
<option value="misc">기타
</select>
<br><br>사용중인 통신회사는 ? <br>
<select name="통신회사" multiple>
<option> 하이텔
<option> 천리안
<option>기타
</select>
<br>
<input type=submit value=전송>
<input type=reset value=취소>
</form>
</body>
</html>
<%--
/******************************************************************************
* 파일 : select-items.jsp
* 용도 : select-items.html에서 넘겨받은 데이터를 보여준다.
* 작성자 : 성홍제
* 작성일 : 2006. 08. 29
* Version : 1.0
******************************************************************************/
--%>
<%@ page contentType="text/html;charset=KSC5601" %>
<html>
<head>
<title>Select Items</title>
</head>
<body>
<center>
<h2>Select Items 테스트</h2>
</center>
HTML에서 선택한 내용은 다음과 같습니다. <hr>
<%
request.setCharacterEncoding("euc-kr");
java.util.Enumeration en = request.getParameterNames();
while(en.hasMoreElements())
{
String name = (String)en.nextElement();
String values[] = request.getParameterValues(name);
for(int i=0; i < values.length; i++)
{
out.print("<li>");
out.print(name);
out.print(":");
out.println(values[i]);
}
}
%>
</body>
</html>
결과가 순서대로 나오지는 않지만, Enumeration이 원래 그렇단다....
'프로그래밍 > Web' 카테고리의 다른 글
에러 페이지 처리 (0) | 2007.11.27 |
---|---|
열혈강의 6장 실습하기 (0) | 2007.11.27 |
04 JSP 액션 (0) | 2007.11.27 |
02 HelloWorld!!! (0) | 2007.11.27 |
01 시작~ (0) | 2007.11.27 |