국비 49일차 JSP 스크립팅요소, 내장객체
2021. 3. 18. 18:30
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>
'ETC > 국비교육' 카테고리의 다른 글
국비 52일차 session관리 (0) | 2021.03.24 |
---|---|
국비 51일차 (MVC패턴, hidden활용, Map과 List) (0) | 2021.03.22 |
국비 48일차 Servlet(init, context 파라미터 , filter, redirect, forward) (0) | 2021.03.17 |
국비 47일차 Servlet scope (0) | 2021.03.16 |
국비 46일차 Servlet DB 연동 절차 (0) | 2021.03.15 |