카테고리 없음

[JSP] JSP의 정의 및 실행 절차

ForA 2019. 7. 15. 20:11
728x90

 

 

JSP

: Java Server Page

  • 서버스크립트 (jsp, php, asp)
  • 자바 웹 어플리케이션
  • 브라우저 서비스(뷰)를 담당하는 한 페이지를 표현
  • Servlet Container (Apache Tomcat)를 통해 실행
  • HTML(Css,JavaScript)(클라이언트 스크립트/브라우저에서 실행)
  • Java 코드(서버 스크립트/ JVM에서 실행)

JSP 실행절차

  1. hello.jsp페이지 요청
    http://ip:port/[ContextRoot(프로젝트명)]/경로/페이지명
    http://localhost:8282/TomTest/0711/hello.jsp

  2. jsp 페이지 존재유무 ⇒ 없을시 404에러

  3. 매핑된 서블릿클래스 존재유무 ⇒ 없을시 생성

     public class hello extends HttpServlet{
         public void init(){}
         public void service(HttpServletRequest request,
             HttpServletResponse response){
             out.print("JSP페이지에서 작성된 HTML");
         }
         public void destroy(){}
     }
  4. 컴파일(hello.class) 유무 -----무----> 컴파일

  5. 메모리 적재 유무 ----무----> 메모리 로딩

  6. 최초 호출인 경우 init()메소드 호출

  7. service()메소드 호출


JSP 기본태그

: JSP 페이지(.jsp) 내에서 자바코드를 식별하는 태그

//Declaraction(선언)
<%!     %> 
<%!
    멤버요소 (전역변수선언, 선언과 동시에 초기화,메소드 정의)
    int su;
    int su2=100;
    public void getMsg(){
        return "Message";
    } //비권장. 메소드는 클래스 안에 넣고 호출하는걸 권장
%>

//Scriptlet(실행)
<%      %>
<%
    service()메소드 안의 자바코드(지역변수선언, 변수초기화, 메소드호출,조건문 반복문,주석(//))
    int su3;
    int su4 = 40;
    su = 10; //멤버변수 초기화
    su3 = 30; //지역변수 초기화

    if(조건식){}
    for(반복문){}
    System.out.println("mes");
%>


//Expression(표현식, 출력식) 
<%=     %> 
<%=
    브라우저에 출력하고자 하는 데이터 (데이터, 변수명, 연산자, 리턴메소드호출)
    (서블릿코드에서 out.print(데이터); 변환)
%>
<%= 2+3 %>
<%= "안녕" %>
<%= su %>
<%= getMsg() %>

//Comment(주석,설명문)
<%--  --%> 
주석 참고)
<!--  --> HTML 주석문
<!-- <%= new Date()> -->
// 자바코드가 실행되지만 브라우저상에는 주석처리되어 소스에서 볼수있음

자바스크립트 영역에서 사용

<script>
    var str = "javascript";
</script>

<%= str %> 
//자바스크립트 영역에 있던 값을 자바영역에서 사용불가

<% 
    int su=300 
    String str = "내일";
%>
<script>
    document.write(<%= su %>); //  가능
    document.write(<%= str %>); // 불가
    document.write("<%= str %>"); // 가능
</script>

<body> 
    <%
         int sum=50;
         String name="gildong";
    %>
    <input type='text' name='username' value='<%= name%>'>
    <script>
         var str="홍길동";
         document.write(str);                (O)
         document.write(sum);                (X)
         document.write(<%= sum %>);         (O) document.write(50);
         document.write(<%= name %>);        (X) document.write(gildong);
         document.write('<%= name %>');      (O) document.write('gildong');
         var su=<%=sum%>;                    (O)  var su=50;
         document.write('이름='+ <%=name%>); (X) document.write('이름='+ gildong);
         document.write('이름=<%=name%>');   (O) document.write('이름=gildong');
    </script>
    <%
         out.print(str);                     (XX)    
                 out.print('<script>document.write(str);</script>'); (O)
    %>

  </body>