2021.03.18 국비교육 49일차

[TOC]

JSP(Java Server Page)

  • 서블릿과 마찬가지로 동적인 웹 어플리케이션을 개발할 때 사용 가능한 웹 컴포넌트
  • 태그 기반의 웹컴포넌트
  • MVC패턴의 View역할
  • JSP -> servlet(.java) -> compile(.class)
  • JSP 요소
스크립팅 요소 예제
Comment tag <%-- 주석 --%>
Directive tag <%@ 지시자 %>
Declaration tag <%! 자바 선언문 %>
Scriptlet tag <% 자바코드 %>
Expression tag <%= 자바 표현식 %>

include

  • 포인트는 jsp : include page 를 사용한다는 점

first page

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>first.jsp</title>
</head>
<body>
<%  //request값 저장
    request.setAttribute("xxx", "홍길동"); //top.jsp 사용 할 수있음
%>
first.jsp<br>
아래화면은 top.jsp를 jsp:include 시킨 내용입니다. <br>
<jsp:include page ="include/top.jsp" flush ="true" /> <!-- flush는 버퍼링 없이 다 호출 됐을때 뿌리는 기능 -->
<br>
다시 first.jsp 내용입니다.

</body>
</html>

top page

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

 <%! int num =10; %>

 <%
     //main.jsp에서 사용한 request 재사용
     String mesg = (String)request.getAttribute("xxx"); //request에서 값 추출

 %>
 <h1 style = "color:red;">
 top.jsp
 안녕하세요? mesg == <%= mesg %>
 num == <%= num %>

 </h1>

declaration, scriptlet, expression

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="java.util.Date"%>
<%@ page import="java.util.ArrayList"%>
    <!-- html 주석 -->
    <%-- JSP 주석 --%>

    <%! 
        //데이터 선언
        //declaration tag : 멤버변수 / 멤버메소드 작성시 사용
        int num = 10;

        public void a(int tt) {
            System.out.println("a========" + tt);
        }
    %>

    <% 
        //데이터 처리
        //scriptlet에서 사용하는 코드는
        //sevlet의 doGet, doPost 안으로 적용됨, 데이터 파싱, db접속, 데이터처리 후
        //변수에 저장 이후 html 태그에 %= 사용 출력
        Date d;
        ArrayList x;
        a(10);//함수 호출
        String name = "홍길동";
    %>

    <%
        String str = "이순신";
        System.out.println("str ==" +str);
        System.out.println("name ==" +name); // 출력 됨
    %>

<!DOCTYPE html>
<html>
<head>
</head>
<meta charset = "UTF-8">
<title>sample</title>
<body>

<%= str %>

<!-- { } 는 따로따로 써야함 -->
<% if(name.equals("홍길동")) {%>
    홍길동입니다.
<% } else { %>
    홍길동이 아닙니다.
<% } %>

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

<%= i + "홍길동<br>" %>

<% } %>

</body>
</html>

내장객체 (내장 변수, implicit object)

  • 내장객체는 JSP페이지가 서블릿으로 변환할 때 자동으로 추가되는 객체를 의미함
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>


<!DOCTYPE html>
<html>
<head>
</head>
<meta charset = "UTF-8">
<title>sample</title>
<body> 
<% //내장객체 request, session, application, out은 import와 new 없이 변수로 사용 가능

    String aa = request.getParameter("aa"); //key aa로 파싱  //주소뒤에 ?aa=1234 적어주면 1234로 출력됨
    out.print(aa); //%=와 같은 의미

    request.setAttribute("CCC", "ccc");
    System.out.println(request.getAttribute("CCC"));

    session.setAttribute("AAA","aaa");
    System.out.println(session.getAttribute("AAA"));

    application.setAttribute("BBB", "BBB");
    System.out.println(application.getAttribute("BBB"));

    out.print("홍길동"); // out을 사용하여 바로 출력가능
    //config.getInitParameter("xxx")

%>



</body>
</html>

+ Recent posts