• [JSP] JSP의 중요 내장 객체(config, application, out, exception)들 정리하기

    2023. 1. 20.

    by. 김홍원

    JSP에는 대표적으로 request와 response 객체가 있고 데이터를 주고 받을 때 사용하는 여러가지 내장 객체들이 있다.

     

     

    web.xml에 servlet을 만들고 JSP와 연결시키는 것이다.

    사용자로부터 요청이 오면 servlet으로 작업을 하는데 그 servlet을 작업을 하여 init-param과 param-name param-vlaue등을 설정하여 JSP로 보내어 클라이언트에게 view하게 해준다.

     

     

    config 객체

    servlet가 JSP에 데이터를 하나 공유할 때 사용한다.

     

    <servlet>

      <servlet-name>servletEx</servlet-name>

      <jsp-flie>jspA.jsp<jsp-file>

       <init-param>

          <param-name>MemberId</param-name>

          <param-value>Member</param-value>

        </init-param>

        <init-param>

          <param-name>MemberPw</param-name>

          <param-value>12345</param-value>

        </init-param>

    </servlet>

    <servlet-mapping>

      <servlet-name>servletEx</servlet-name>

      <url-pattern>/jspA.jsp</url-pattern>

    </servlet-mapping>

     

    JSP에서 

     

    <%!

    Sting MemberId ;

    String MemberPw ;

    %>

     

    <%

    MemberId = getServletConfig().getInitparameter("MemberId");

    MemberPw= getServletConfig().getInitParameter("MemberPw");  

    %>

     

    <p>membeId: <%=memberid %></p>

    <p>memberpw: <%=memberpw%></p>

     

    로 표시하여 web.xml에서 servlet안에있는 init-param을 getInitParameter를 사용하여 받아 올 수 있다.

    이 config객체를 사용하는 것은 그 해당 servlet에서만 사용할 수 있는데,

    web.xml으로 JSP 전체에 보내는 방법도 있다.

     

    application 객체

    application객체는 context param로 getInitParameter()를 사용하여 전체 JSP들에 보낼 수 있다.

     

      <context-param>

          <param-name>imgSet</param-name>

          <param-value>/save/img</param-value>

        </context-param>

        <context-param>

          <param-name>numberSet</param-name>

          <param-value>12345</param-value>

        </context-param>

      <servlet>

         <servlet-name>servletEx</servlet-name>

          <jsp-flie>jspA.jsp<jsp-file>

        <init-param>

          <param-name>MemberId</param-name>

          <param-value>Member</param-value>

        </init-param>

         <init-param>

           <param-name>MemberPw</param-name>

           <param-value>12345</param-value>

         </init-param>

         </servlet>

        <servlet-mapping>

        <servlet-name>servletEx</servlet-name>

        <url-pattern>/jspA.jsp</url-pattern>

       </servlet-mapping>

     

     

       <%!

        String MemberId ;

        String MemberPw ;

     

        String imgSet;

        String numberSet;

       %>

       

     

        <%

           MemberId = getServletConfig().getInitparameter("MemberId");

           MemberPw= getServletConfig().getInitParameter("MemberPw");  

          %>

     

        <p>membeId: <%=memberid %></p>

        <p>memberpw: <%=memberpw%></p>

     

        <%

          imgSet = application.getInitParameter("imgSet");

          numberSet = application.getInitParameter("numberSet");

        %>

         <p>imgSet: <%= imgSet %> </p>

         <p>numberSet: <%= numberSet %> </p>

     

         로 각각 멤버변수에 추가 하고 appliacation을 객체로 해서 getInitparameter로 받아와서 값을 받고

         표현식코드로 출력할 수 있다. 값을 받아오는 메서드와 표현식 코드를 번갈아서 2번 사용했다. 

     

    모든 application내에서 공유할 수 있다는 특징때문에  application객체는 setAttribute()와 getAttribute()를 사용하여 값을 다른 JSP에서 설정하고 받을 수 있다.

     

    예를 들어보면

     

    application.setAttribute("memberId", "Kim");

    application.setAttribute("memberIP", "192.168.0.2);

    라고 하나의 JSP에서 appliction으로 만들었다면

     

    memberId= (String)application.getAttribute("memberId");

    memberIP=(String)application.getAttribute("memberIP");

    로 다른 JSP와 공유가 가능하다.

     

     

      

    out 객체

    out객체는  servlet의 doGet에서 봤던 out.print()처럼 out객체를 활용하여 출력할 수 있다.

     

     

    exception 객체

    에러 메세지를 예외 객체를 활용하여 표시하는 것이다.

     

    하나의 JSP 페이지에서 변수를 선언만 하고 초기화하지 않았다고 가정하자.

     

    <%@ errorPage= "errorPage.jsp%> 를 최상단부에 써서 해당 페이지에 보내도록 설정해놔야한다.

     

    <%@ page isErrorPage="true"%> 라고 위에서 받는 JSP에 표시해야한다.

    해당 JSP 페이지에서 

     

    <%

       String msg= exception.getMessage();

    %>

     

    <h1> error message: <%= msg %> </h1> 으로 에러 메세지를 출력할 수 있다.

     

    출력하면 error message : null이 나올 것이다.

    댓글