- 환경변수 설정은 아래 글 참고하기(encoding, Servers 설정 등)
https://yelin1217.tistory.com/201
[SIST] Web_HTML_days01_환경설정 및 Web의 역사, HTML의 기본구조
클라이언트의 요청을 처리하기 위해서는 웹서버와 WAS가 필요하다. 아파치 톰캣을 설치하도록 하겠다! 우리 강의장은 Tomcat8.5.78을 사용한다고 하여 이 기준으로 정리하도록 하겠다. 1. 아파치 톰
yelin1217.tistory.com
1. JSP를 시작하기 전..
1-1.정적 자원과 동적 자원
- 새로고침을 했을 때 바뀌지 않으면 정적 자원
- 새로고침을 했을 때 바뀐다면 동적 자원
1-2. WAS 서버의 역할
- WAS(본인은 사용하는 것은 톰캣) JSP 페이지 안에 있는 자바 코딩을 컴파일 + 실행시킨다.
- 컴파일 할 때는 javac.exe, 실행할 때는 java.exe 인터프리터를 알아야 하기 때문에 환경변수(JAVA_HOME)을 설정함
1-3. <% 붙어 있으면 전부 다 서버에서 실행 되는 것이다.
따라서 클라어인트는 html에 있는 내용들만 보인다.(소스 페이지 확인)
[JSP]
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// < % 이것을 스크립트릿 : 자바 코딩을 한다.
Date now = new Date();
String pattern = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String strNow = sdf.format(now);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<title>2022. 6. 14. - 오후 12:26:36</title>
</head>
<body>
<h3>ex01.jsp - 동적 자원</h3>
<pre>
새로고침을 해도 바뀌지 않으면 정적 자원, 바뀐다면 동적 자원
</pre>
<!-- 표현식 -->
<h3><%= strNow %></h3>
<%-- JSP의 주석처리 --%>
</body>
</html>
[소스 페이지]
2. JSP와 쿼리스트링(QueryString)
- JSP는 Java Server Page의 약자
- 자바 웹 기술은 2가지가 있다.
ㄱ) 서블릿(Servlert)
ㄴ) JSP(서블릿 다음에 나온 것)
- 웹 기술
ms사의 asp
c#(.net)의 aspx
php 등등이 있음
- 쿼리스트링(QueryString)은
http://localhost/jspPro/days01/ex02_ok.jsp?name=%ED%99%8D%EA%B8%B8%EB%8F%99&age=20
위와 같은 URL에서 ? 뒤에 있는 것을 쿼리스트링(QueryString)이라고 함(요청할 때 넘어오는 값)
http://localhost/jspPro/days01/ex02_ok.jsp
?
name=%ED%99%8D%EA%B8%B8%EB%8F%99 => 한글 -> %16진수값 변경
&
age=20
3. JSP 페이지의 구성요소
1) 디렉티브(Directive) == 지시자
- JSP 페이지에 대한 설정 정보를 지정할 때 사용한다.
- 선언 형식 : <%@ %>
- 디렉티브(Directive) 3가지 종류
ㄱ) <%@ page %> : page 지시자
ㄴ) <%@ taglib %> : taglib(태그 라이브러리) 지시자
ㄷ) <%@ include %> : include 지시자
2) JSP 스크립트
- JSP 문서의 내용을 동적으로 생성하기 위해 사용되는 스크립트를 말함
ㄱ) 스크립트릿(Scriptlet) <% %> : 자바 코딩, 변수 선언 가능
- 스크립트릿에 선언하는 변수는 지역 변수
ㄴ) 표현식(Expression) <%= %> : 출력 용도
ㄷ) 선언문(Declaration) <%! %> : 변수, 메서드 선언 영역
- 선언문에서 선언하는 변수는 멤버 변수(필드) 즉, 서블릿 클래스의 멤버 변수와 메서드로 선언되어짐
3) 표현 언어(Expression Language) == EL : 출력 용도
- 형식 : ${}
- EL안에 param 이란 기본객체가 있다. param 으로 URL에 있는 ? 뒤에 있는 값을 받아올 수 있음
4) 기본 객체(Implicit Object)
- JSP에는 웹 어플리케이션 프로그래밍을 하는데 필요한 기능을 제공해주는 9가지의 기본 객체를 제공한다.
ㄱ) request(요청)
ㄴ) response(응답)
ㄷ) session
ㄹ) application
ㅁ) page
등등
5) 정적인 데이터
6) 표준 액션 태그(Action Tag)
- ex) <jsp:태그명></jsp:태그명>
7) 커스텀 태그(Custom Tag)
- ex) <logon></logon>
- 커스텀 태그 중에서 자주 사용하는 것들을 별도로 표준화한 태그 라이브러리로 표준 태그 라이브러리(JSTL) 사용
* JSP 파일에서 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 코딩을 제외하고 다 지운 뒤 코딩하여도 실행이 잘 되어진다.
3-1. 스크립트릿과 표현식 예시)
- <% %> (스크립트릿) 안에는 자바 코딩을 한다. Date와 같은 객체를 생성할 때 자동으로 상단에 import 되어지는 것을 확인할 수 있다.
- <%= %> (표현식)으로 스크립트릿 안에 선언한 변수 값을 가져온다.
[결과]
- 새로고침을 할 때 마다 시간이 바뀌는 것을 확인(동적 자원)
3-2. 스크립트릿, EL(표현 언어)과 EL의 기본객체 param 예시)
[ex02.html]
[ex02_ok.jsp]
스크립트릿에서 코딩한 것을 아래와 같이 표현식으로 가져올 수도 있지만..
전송된 name : <%= name %><br>
전송된 age : <%= age %><br>
EL(표현언어) 문법을 사용해서 ? 뒤에 날아오는 쿼리스트링을 받아오는 방법으로 EL 안에 param이라는 기본객체를 사용할 수 있다.
[결과]
4. out.append()와 out.print()
- JSP에서 제공하는 기본 객체 중에 하나인 out 객체는 출력 기능을 한다.
- out.append("문자열") : 매개변수는 String만 가능
- out.print(int) : 매개변수는 int만 가능
예시) 1+2+3+4+5+6+7+8+9+10=55 가 나오게 하고 싶다.
- System.out.printf()와 같이 이런 코딩으로하면 cmd 창에 출력되어진다.
- out.append()와 out.print()를 사용하여 출력하기
[out.append()만 사용했을 때]
[스크립트릿과 표현식으로만 사용했을 때]
[결과]
'TIL > View Template' 카테고리의 다른 글
[SIST] JSP_days04_부서 선택시 해당 부서의 사원 정보를 테이블로 출력하는 예제 (0) | 2022.06.18 |
---|---|
[SIST] JSP_days03_response 객체 / 리다이렉트(redirect) / 포워드(forward) / GET 방식 + 서블릿 + JDBC + 포워딩 예제(JSTL 맛보기) (0) | 2022.06.16 |
[SIST] JSP_days02_DB연동해보기(JDBC) (0) | 2022.06.15 |
[SIST] JSP_days02_예제 (0) | 2022.06.15 |
[SIST] JSP_days02/days03 (0) | 2022.06.15 |