03 JSP 시작

프로그래밍/Web 2007. 11. 27. 15:12 Posted by galad

★ 프리젠테이션 로직에 들어간다.


★ 디폴트 객체의 스코프

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