JSP 공부한것 요약

JSP : 2007. 6. 18. 04:08
반응형
 

    1. jsp 설정부분에서는

       문서의 타입

       커스텀 태그

       표현언어의 사용 엽부

       사용할 자바 클래스 지정

      을 한다.


    2. JSP페이지의 구성 요소

      ○ 디렉티브 : JSP페이지에 대한 설정 정보를 지정할때 사용

               사용 예 : <%@ 디렉티브이름 속성1="값1" 속성2="값2" ... %>

               디렉티브의 종류 : page - JSP페이지에 대한 정보를 지정, 문서의타입, 출력버퍼의 크기 에러페이지등

                               taglib - JSP에서 사용할 태그 라이브러리를 지정

                               include - JSP페이지의 특정 영역에 다른 문서를 포함시킨다.

      ○ 스크립트 : 스크립트릿 - 자바코드를 실행한다.

                  표현식 - 값을 출력한다.

                  선언부 - 자바 메소드를 만든다.

      ○ 표현언어 : JSP 페이지 내부에서 사용되는 간단한 스크립트 언어이다. (자바를 모르는 사람들을 위한언어)

      ○ 기본(내장)객체 : request, response, session, application, page, out, pageContext, exception

      ○ 정적인 데이터

      ○ 액션태그 : 액션태그는 XML문서의 태그와 같은 모양을 취한다.

               예) <jsp:include page="header jsp" flush="true" />

      ○ 커스텀태그 : JSP를 확장시켜 주는 기능, 사용자가 직적 개발해주어야 한다. 액션태그와 같이 태그 형태로 기능을 제공



     2-1. 디렉트브 중 page 디렉티브  <%@ page

          page 디렉트브는 기본이 되는 정보를표기하기 떄문에 jsp 소스의 가장 첫줄에 입력하는 것이 일반적이다.

          속성 : language : jsp 스크립트 코드에서 사용되는 프로그래밍 언어를 지정한다.  기본값 = java

                contentType : jsp가 생성할 문서의 타입을 지정한다. 기본값 = text/html

                              contentType="text/html; charset=euc-kr" %>

                import : jsp페이지에서 사용할 자바 클래스를 지정한다.

                         import = "java.utile.Calendar" %>

                         import = "java.util.Date" %>

                         import = "java.utile.Calendar, java.utile.Date" %> 한줄에 여러개도 가능

                         import = "java.util.*" %>

                         ※ 클래스는 특별한 기능을 하는 모듈

                         ※ 패키지는 클래스를 모아놓은 단위

                session : jsp 페이지가 세션을 사용할지의 여부를 지정한다. 기본값 = true

                buffer : jsp페이지의 출력버퍼 크기를 지정한다 none일 경우 버퍼를 사용 안한다. 최소값=8kb

                autoFlush : 출력버퍼가 다 찼을 경우 자동으로 버퍼에 있는 데이터를 출력 스트림에 보내고 비울지의 여부를 나타낸다.

                            true일 경우 버퍼 내용을 웹브라우저에 보낸후 버퍼를 비우고, false일때는 에러를 발생시킨다. 기본값 = true

                info : jsp페이지에 대한 설명을 입력한다.

                errorPage : jsp 실행도중 에러발생시 보여줄 페이지를 지정

                isErrorPage : 현재 페이지가 에러가 발생할 때 보여지는 페이지인지의 여부를 지정한다.

                              true 일때 에러페이지, false일때는 에러페이지가 아니다. 기본값 = flase

                pageEncoding : jsp페이지 자체의 캐릭터 인코딩을 지정한다.

                isELIgnored : true일 경우 표현 언어를 지원하며 false일경우 표현언어를 지원하지 않는다.

               

     2-2. 스크립트

          - Scroptlet : JSP페이지에서 자바 코드를 실행할 때 사용되는 코드의 목록

                        <%

                            int sum = 0;

                            for ( int i=0 ; i<=10 ; i++){

       sum = sum+1;

                        %>

          - 표현식 : <%= 값 %>

          - 선언부 : 함수를 작성할 때

                    <%!

                         public 리턴타입 메소드이름(파라미터 목록){

                              자바코드 1;

                              자바코드 2;

                              return 값;

                         }

                     %>

                     실제 jps로 웹 어플리케이션을 작성할 때에는 선언부를 쓰지 않고 클래스를 작성해서 사용한다.


     2-3. 기본(내장)객체

           -request : 웹 브라우저의 요청과 관련이 있다.

                      * 웹브라우저 관련 정보 읽기 기능

                      * 서버와 관련된 정보 읽기 기능

                      * 클라이언트가 전송한 요청 파라미터,헤더, 쿠키 읽기 기능

                      * 속성 처리 기능

                      String getRemoteAddr() : 클라이언트 IP 구하기

                      long getContentLength() : 클라이언트가 전송한 요청 정보의 길이

                      String getCharacterEncoding() : 클라이언트가 요청 정보 전송시 사용한 캐릭터의 인코딩을 구한다.

                      String getContentType() : 클라이언트가 요청 정보를 전송시 사용한 컨텐츠 타입을 구한다.

                      String getProtocol()

                      String getMethod()

                      String getRequestURI() : 웹브라우저가 요청한 URL에서 경로를 구한다. (/chap02/requestInfo.jsp)

                      String getContextPath() : jsp페이지가 속한 웹 어플리케이션의 콘텍스트 경로를 구한다. (/chap02)

                      String getServerName() : 연결할 때 사용한 서버 이름을 구한다.

                      int getServerPort() : 서버가 실행 중인 포트 번호를 구한다.


                      웹브라우저에 입력한 정보는 파라미터로 전송 된다.

                      String getParameter(String name) : 이름이 name인 파라미터 값을 구한다.

                      String[] getParameterValues(String name) : 이름이 name인 모든 파라미터의 값을 배열로 구한다.

                      java.utile.Enumeration getParameterNames() : 웹브라우저가 전송한 파라미터의 이름을 구한다.

                      java.util.Map getParameterMap() : 웹브라우저가 전송한 파라미터의 맵을 구한다. 

                                                                                         

    <%@ page contentType="text/html; charset=euc-kr" %>

    <%@ page import="java.util.Enumeration" %>

    <%@ page import="java.util.Map" %>

    <%

        request.setCharacterEncoding("euc-kr");

    %>

    <html>

    <head><title>요청 파라미터 출력</title></head>

    <body>

    <b>request.getParameter() 메소드 사용</b><br>

    name 파라미터 = <%= request.getParameter("name") %> <br>

    address 파라미터 = <%= request.getParameter("address") %>

    <p>

    <b>request.getParameterValues() 메소드 사용</b><br>

    <%

        String[] values = request.getParameterValues("pet");

        if (values != null) {

                for (int i = 0 ; i < values.length ; i++) {

    %>

        <%= values[i] %>

    <%

                      }

              }

    %>

    <p>

    <b>request.getParameterNames() 메소드 사용</b><br>

    <%

        Enumeration enum = request.getParameterNames();

        while(enum.hasMoreElements()) {

            String name = (String)enum.nextElement();

    %>

            <%= name %>

    <%

        }

    %>

    <p>

    <b>request.getParameterMap() 메소드 사용</b><br>

    <%

        Map parameterMap = request.getParameterMap();

        String[] nameParam = (String[])parameterMap.get("name");

        if (nameParam != null) {

    %>

    name = <%= nameParam[0] %>

    <%

    }

    %>

    </body>

    </html>

      <!-- 체크박스나 라디오 버튼은 선책하지 않으면 파라미터 자체가 전송되지 않지만, 텍스트입력과 같은 일반적인 입력 요소들은 값을 입력하지 않더라도 문자열("") 파라미터의 값으로 전달 된다. -->


                      요청 헤더 정보의 처리

                      String getHeader(String name) : 지정한 이름의 헤더 값을 구한다.

                      java.utile.Enumeration gerHeaders(String name) : 지정한 이름의 헤더 목록을 구한다.

                      java.utile.Enumeration getHeaderName() : 모든 헤더의 이름을 구한다.

                      int getIntHeader(String name) : 지정한 헤더의 값을 정수값으로 읽어온다.

                      long getDateHeader(String name) : 지정한 헤더의 값을 시간 값으로 읽어온다.( 1970.1.1 이후로 흘러간 1/1000 단위의 )


           -response : 웹 브라우저의 요청과 관련이 있다.

                      void addDateheader(String name, long date)  : name헤더에 date 추가한다.

                      void addHeader(String name, String value) : name 헤더에 value 값을 추가한다.

                      void addIntHeader(String name, int value) : name 헤더에 정수값 value 값을 추가한다.

                      void setDateHeader(String name,long date) : name헤더의 값을 date 지정한다.

                      void setHeader(String name, String value) :

                      void setIntHeader(String name,int value) :

                      boolean constinsHeader(String name) : 이름이 name 인헤더를 포함하고 있을 경우 true 리턴

                  

                     response 객체에거 가장 많이 사용되는 기능은 redirect 기능이다.

                     response.sendRedirect("/index.jsp");

                     response.sendRedirect("http://hybridego.net/");  <-- 외부 연결이 가능하다.


    <%@ page import = "java.net.URLEncoder" %>

    <%

        String value = "자바";

        String encodedValue = URLEncoder.encode(value);

        response.sendRedirect("/index.jsp?name=" + encodedValue);

    %>


    Enumeration 쓰는 방법

    Enumeration enum = request.getHeaderNames();

    While ( enum.hasMoreElements() ) {

    String headerName = (String)enum.nextElement();

    …………..

    }


    랜덤함수 쓰는 방법

    <%@ page contentType="text/html; charset=euc-kr" %>

    <%@ page import = "java.util.Random" %>

    <html>

    <head><title>break 사용 예</title></head>

    <body>

    <%

        Random random = new Random();

        for (int i = 1 ; i <= 20 ; i++) {

            int number = random.nextInt(10) + 1;

    %>

    <%= i %> 번째 = <%= number %> <br>

    <%

            if (number == 7) break;

        }

    %>

    </body>

    </html>


    <%@ page buffer = "none" autoFlush="false" %>


           -out 객체의 메쏘드들

                      int getBufferSize() : 버퍼의 크기를 구한다.

                      int getRemaining() : 현재 버퍼의 남은 크기를 구한다.

                      void clear() : 버퍼의 내용을 비운다. 만약 이미 버퍼가 플러시 경우 IOException 발생시킨다.

                      void clearBuffer() : 버퍼의 내용을 비우는데 버퍼 플러시 경우에도 IOException 발행 안시킨다.

                      void flush() : 버퍼 플러쉬 한다.

                      boolean isAutoFlush() : 버퍼가 찼을때 자동으로 플러시할 경우 true 리턴한다.


           -pageContext 메소드들  : 하나의 JSP 페이지와 1:1 매핑되는 객체

                      ServletRequest getRequest()  : request 기본 객체를 구한다.

                      ServletResponse getResponse() : response 기본객체를 구한다.

                      HttpSession getSession() : session 기본 객체를 구한다.

                      ServletContext getServletConfig() : config기본객체를 구한다.

                      JspWriter getOut() : out기본객체를 구한다.

                      Exception getException() : exception 기본객체를 구한다.

                      Object getPage() : page 기본 객체를 구한다.


           -application : 특정 어플리케이션과 관련된 기본 객체

                      String getinitParameter(String name) : 이름이 name 어플리케이션 초기화 파라메터의 값을 읽어온다. 없으면 null.

                      Enumeration getInitParameternames() : 어플리케이션 초기화 파라미터의 이름 목록을 리턴한다.

                      String getServerinfo() : 서버정보를 구한다.

                      String getMajorVersion() : 서버가 지원하는 서블릿 규약의 메니저 버전을 리턴한다.

                      String getMinorVersion() : 서버가 지원하는 서블릿 규약의 마이너 버전을 리턴한다., 버전의 소수 부분을 리턴한다.

                      void log(String msg) : 로그메세지 msg 기록한다.

                      void log(String msg, Throwable throwable) : 로그 메시지 msg 기록한다. 예외정보도 함께 로그 파일에 기록한다.

                      String getRealPath(String path) : 어플리케이션 내에서 지정한 경로에 해당하는 자원의 시스템 상에서의 자원 경로를 턴한다.

                      java.net.URL getResource(String path) : 웹어플리케이션 내에서 지정한 경로에 해당하는 자원에 접근할 있는 URL 객체를 리턴한다.

                      java.io.InputStream getResourceAsStream(String path) : 웹어플리케이션 내에서 지정한 경로에 해당하는 자원으로부터 데이터를 읽어올 있는 InputStream 리턴한다.



     3. Scope

          PAGE 영역 - pageContext 기본객체

          REQUEST 영역 - request 기본객체

          SESSION 영역 - session 기본객체

          APPLICATION 영역 - application 기본객체


         위의 네가지 기본 객체는 다음의 메소드를 제공한다.

             void setAttrivute(String name, Object value) : 이름이 name 속성값을 value 지정한다.

             Object getAttribute(String name) : 이름이 name 속성의 값을 구한다. 지정한 이름의 속성이 존재하지 않을 경우 null 리턴

             void removeAttribute(String name) : 이름이 name 속성을 삭제한다.

             java.util.Enumeration getAttributeNames() : 속성의 이름 목록을 구한다.(pageContext 기본 객체는 메소드를 제공하지 않는다.)


            지정할때 아래와 같이 하고

            session.setAttribute("session_start", new java.util.Date());

            session.setAttribute("memberid","madvirus");

            application.setAttribute("application_temp",new File("c://temp"));


           읽어올때는 다음과 같이 한다.

           Date date=(Date)session.getAttribute("session_start");

           String memberID = (String)session.getAttribute("memberid");

           File tepDir = (File)application.getAttribute("application_temp");


          기본타입을 쓰고 싶을 때는 wrapper 클래스를 사용해야 한다.

           Integer intValue = new Integer(100);

           request.setAttribute("ratio", intValue);


           Integer intValue = (Integer)request.getAttribute("ratio");

           int value = intValue.intValue();



     4. 에러처리

         page디렉티브의 errorPage 속성을 사용하여 에러를 처리한다.

         <%@ page errorPage = "/error/viewErrorMessage.jsp" %> 이렇게 지정하고 여기에서 지정한 viewErrorMessage.jsp 페이지에서는 다음과 같이 세팅한다.

          <%@ page isErrorPage="true" %> 페이지는 에러 페이지라는 것을 앞에 표시한다.

          이렇게 하면 exception 기본 객체를 사용할 있게 된다.


          JSP에서는 WEB-INF/web.xml 파일에서 각각의 에러 상태 코드별로 보여줄 페이지를 지정할 있도록 하고 있다.

          <web-app>

          <error-page>

               <error-code>에러 코드</error-code>

               <location>에러페이지의 URI</location>

          </error-page>

          </web-app>


           <error-page>

               <exception-type>java.lang.NullPointerException(/exception-type> 으로 하면 예외 종류별 에러페이지를 작성할 있다.

               <location>에러페이지의 URI</location>

          </error-page>


              -- 에러페이지의 우선숭의 에러페이지 지정 형태

                    1. page 디렉티브의 errorPage 속성

                    2. JSP 페이지에서 발생한 예외타입이 web.xml <exception-type> 에서 지정한

                    3. <error-code>

                    4. 아무것도 해당 안되면 톰캣 기본 에러


     5. 페이지 이동

           <jsp:forward page="이동할 페이지" /> 액션 태그를 이용한 이동


            추가로 정보를 전달하고 싶을때

            <jsp:forward page="moveTo.jsp">

                <jsp:param name="first" value="BK" />

                <jsp:param name="last" value="Choi" />

            </jsp:forward>


            파라미터를 이용한 정보 전달

            request.setAttribute(String name, Object value) 넘긴다.


             리다이렉트를 이용한 페이지 이동

            <%

                  String paramString = "code=A000&type=C";

                  response.sendRedirect("/to/move.jsp?"+paramString);

            %>


            자바스크립트를 이용한 페이지 이동


     6. jsp페이지 모듈화

            <jsp:include> 액션태그를 이용한 페이지 모듈화

            <jsp:include page=sub.jsp" flush="true" />  여기에서 flush true 설정하면 sub.jsp에서 response.setheader()처럼 헤더를 지정하거나 추가해 주는 메소드를 실행해도 헤더가 반영되지 않는다.


             포함할 페이지에 값을 전달하기

            <jsp:include page="moveTo.jsp" flush="false">

                <jsp:param name="first" value="BK" />

                <jsp:param name="last" value="Choi" />

            </jsp:forward>


           *include 디렉티브를 이용한 중복된 코드 삽입

          <%@ include file="포함할 파일" %>


           <jsp:include> 액션태그는 jsp 파일을 컴파일한 결과 값을 가져온다.

             하지만 <%@ include > 디렉티브는 그상태 그대로 코드를 가져와서 한꺼번에 컴파일 한다.


           include 디렉티브를 사용해서 포함하는 파일의 경우 일반 파일과 구분짓기 위해서 확장자를 jspf 사용한다.

              여기서 jspf JSP Fragment , jsp 소스코드 조각을 의미한다.

    <?xml version="1.0" encoding="euc-kr"?>


    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

                            http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

        version="2.4">

      <display-name>8장 예제</display-name>

      <description>

         8장의 예제 소스 코드 및 실행 코드

      </description>

     

      <jsp-config>

        <jsp-property-group>

          <url-pattern>/view/*</url-pattern>

          <include-prelude>/common/variable.jspf</include-prelude>

          <include-coda>/common/footer.jspf</include-coda>

        </jsp-property-group>

      </jsp-config>

     

    </web-app>


    비교

    <jsp:inlcude>

    include 디렉티브

    처리시간

    요청시간에 처리

    jsp파일을 자바 소스로 변환 처리

    데이터 전달 방법

    request 기본 객체나 <jsp:param> 이용한 파라미터 전달

    페이지 내의 변수를 선언한 , 변수에 저장

    용도

    화면의 레이아웃의 일부분을 모듈화 주로 사용

    다수의 JSP 페이지에서 공통으로 사용되는 변수를 지정하는 코드나 저작권과 같이 공통의 문장을 포함한다.

    기능

    병도의 파일로 요청처리 흐름을 이용

    현재파일에 삽입시킴

             

     7. 쿠키와 세션

          7-1. 쿠키 사용

                  ○절차 : 쿠키 생성 - 쿠키 저장 - 쿠키 전송

                  ○쿠키의 구성 요소 : 이름(쿠키 구별하는데 ),   --<알파벳과 숫자만 쓸수 있다.>

                                              (쿠키 이름과 관련된 ),

                                              유효시간(쿠키 유지 시간),

                                              도메인(쿠키를 전송할 도메인),

                                              경로(쿠키를 전송할 요청 경로)


                  ○생성하기

                    <%

                           Cookie cookie = new Cookie("cookieName", "cookieValue");

                           response.addCookie(cookie);

                    %>

                   ○쿠키 메소드들

                       String getName() : 쿠키의 이름을 구한다.

                       String getValue() : 쿠키의 값을 구한다.

                       void setValue(String vlaue) 쿠키의 값을 지정

                       void setDomain(String pattern) : 쿠키가 전송될 서버의 도메인을 지정한다.

                       String getDomain() : 쿠키의 도메인을 구한다.

                       void setPath(String uri) :쿠키를 전송할 경로를 지정한다.

                       String getPath() : 쿠키의 전송 경로를 구한다.

                       void setMaxAge(int expiry) : 쿠키의 유효 시간을 단위로 지정한다. 음수를 입력하면 웹브라우저 닫을 쿠키도 같이 삭제 된다.

                       int getMaxAge() : 쿠키의 유효 시간을 구한다.                  


                   ○쿠키 읽어오기

                     Cookie[] cookies = requeset.getCookies();


                   ○쿠키 변경 삭제

    <%@ page contentType = "text/html; charset=euc-kr" %>

    <%@ page import = "java.net.URLEncoder" %>

    <%

        Cookie[] cookies = request.getCookies();

        if (cookies != null && cookies.length > 0) {

            for (int i = 0 ; i < cookies.length ; i++) {

                if (cookies[i].getName().equals("name")) {

                    Cookie cookie = new Cookie("name",

                             URLEncoder.encode("JSP프로그래밍"));

                    response.addCookie(cookie);

                    //cookies[i].setValue(URLEncoder.encode("자바와 JSP"));

                    //response.addCookie(cookies[i]);

                }

            }

        }

    %>

    <html>

    <head><title>값 변경</title></head>

    <body>

    name 쿠키의 값을 변경합니다.

    </body>

    </html>


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

    삭제는 다음과 같이 한다.

    <%@ page contentType = "text/html; charset=euc-kr" %>

    <%@ page import = "java.net.URLEncoder" %>

    <%

        Cookie[] cookies = request.getCookies();

        if (cookies != null && cookies.length > 0) {

            for (int i = 0 ; i < cookies.length ; i++) {

                if (cookies[i].getName().equals("name")) {

                    Cookie cookie = new Cookie("name", "");

                    cookie.setMaxAge(0);

                    response.addCookie(cookie);

                }

            }

        }

    %>

    <html>

    <head><title>쿠키 삭제</title></head>

    <body>

    name 쿠키를 삭제합니다.

    </body>

    </html>



                   ○쿠키 도메인

                      .hybridego.net - 점으로 시작하는 경우 관련 도메인 모두 쿠키를 전송

                                            mail.hybridego.net www.hybridego.net, asdf.hybridego.net 등으로 모두 전송 된다.

                      www.hybridego.net - 특정 도메인에 대해서만 쿠키를 전송한다.


          7-2. 세션 사용

                      세션은 기본적으로 하나의 브라우저에 하나의 세션을 생성한다.

                   ○세션 생성하기

                      <%@ page contentType = … %>

                      <%@ page session = "true" %>  

                      페이지 디렉티브의 session속성의 기본값이 true 이기 때문에 별도로 지정하지 않아도 세션이 기본적으로 생성 된다.

                     

                   ○세션 메소드

                      String getId() : 세션의 고유 ID 구한다.

                      long getCreationTime() : 세션이 생성된 시간을 구한다. (1970-1-1 이후 흘러간 시간, 단위는 1/1000

                      long getLastAccessedTime() : 브라우저가 가장 마지막에 세션에 접근한 시간

                  

    <%@ page contentType = "text/html; charset=euc-kr" %>

    <%@ page session = "true" %>

    <%@ page import = "java.util.Date" %>

    <%@ page import = "java.text.SimpleDateFormat" %>

    <%

        Date time = new Date();

        SimpleDateFormat formatter =

           new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    %>

    <html>

    <head><title>세션정보</title></head>

    <body>

    세션ID: <%= session.getId() %> <br>

    <%

        time.setTime(session.getCreationTime());

    %>

    세션생성시간: <%= formatter.format(time) %> <br>

    <%

        time.setTime(session.getLastAccessedTime());

    %>

    최근접근시간: <%= formatter.format(time) %>


    </body>

    </html>

              쿠키대신 세션을 사용하는 이유

                    쿠키는 네트워크를 통한 전송 도중 다른사람이 수도 있지만 세션은 서버에만 있기 때문에 안전하고

                    브라우저에서 쿠키사용을 막으면 쿠키를 생성할 없지만 세션은 상관이 없다.


                   ○세션 종료

                        session.invalidate();

                        session.removeAttribute("이름"); 이렇게 세션을 삭제해도 로그 아웃한 효과를 볼수 있다.


                   ○세션 타임아웃 설정

                            - web.xml

                                 <session-config>

                                       <session-timeout>50</session-timeout>  분단위

                                 </session-config>

                              이렇게 설정


                            - session 기본객체가 제공하는 setMaxInactiveInterval() 메소드 사용

                                 <%

                                       session.setMaxInactiveInterval(60*60); 초단위

                                 %>


     8. jsp에서 자바빈 활용하기

          JavaBean 데이티를 표현하는 것을 목적으로 하는 자바 클래스이다.

              public class BeanClassname implements java.io.Serializalble {

                      /*값을 저장하는 필드 */

                      private String value;

              

                      /*BeanClassName 기본 생성자 */

                      public BeanClassName(){

                      }

                      /*필드의 값을 읽어 오는 */

                      public String getValue() {

                         return value;

                      }

                      public void setValue(String value){

                         this.value - value;

                      }

              }


            자바빈 규약에 따르는 클래스를 자바빈이라고 부른다.

            자바빈 클래스는 데이터저장 필드, 데이터를 읽어오는 메소드, 데이터를 저장하는 메소드로 구성된다.


           <jsp:useBean id="info" class="hybridego.member.MemberInfo" scope="request" />


            위의 액션태그는 다음과 같은기능을 한다.


            memberinfo info = (Memberinfo)request.getAttribute("info");

            if (info==null){

                  info = new MemberInfo();

                  request.setAttribute("info", info);

            }


           <jsp:useBean id="info" type="hybridego.member.MemberInfo" scope="request" /> 이렇게 쓰면 지정한 영역에 이미 객체가 존재한다고 가정한다. 객체가 존재하지 않을 경우 에러를 발생시킨다.


           <jsp:getProperty name = "info" property="name" />
         

           <jsp:setProperty name = "info" property="name" value="전호철" />


           value 속성 대신 param 속성을 활용할 수도 있다.

           param속성은 값을 프로퍼티의 값으로 지정할 사용된다.

           <jsp:setProperty name="info" property="name" param="name" /> 이렇게 하면 name 파라메터값을 지정한다.


           <jsp:setProperty name="info" property="*" /> 이렇게 하면 각각의 파라메터값이 각각의 프로퍼티에 들어간다.



반응형

'JSP' 카테고리의 다른 글

자바빈(Java Bean) 컴포넌트  (0) 2007.06.18
[JSP] 세션을 이용한 로그인 처리  (0) 2007.05.03
JSP 맛보기  (0) 2007.04.06
Posted by Real_G