마트철수
[057] JSP 그리고 HTML5 Form 태그화 서블릿 본문
2024.07.29(월)
JSP, Selvlet 2일차
Java에서 준비해둔 기초 라이브러리가 있음
= 엔터프라이즈 에디션
JSP 프레임워크가 있고,
Spring은 그 위에 운영되는 것임
기본 웹 동작 방법을 배우고,
어떤 점이 불편한지 확인해서
프레임워크 단에서 어떻게 개선했는지 배우는 과정임
JSP, selvlet
PART01 시작하기
- CH01.1 웹 애플리케이션 개요
- CH01.2 웹 애플리케이션 프로젝트
PART02
- CH02.3 JSP 문법
PART03
- CH03.1 HTML5 Form 태그화 서블릿
- CH03.2 필터
PART04
- CH04.1 서블릿 고급 - 세션, 쿠키
- CH04.2 요청 포워딩, 리다이렉트
PART05
- CH05 EL, JSTL
- FrontController
Servlet VS JSP
- Selvet은 BL은 쉽지만, HTML 출력이 어려움
- JSP는 HTML 출력은 쉽지만, BL은 어려움
- 두 장점을 적절히 섞은 것 = MVC
오늘 배운 단원 중에서는
'HTML5 Form 태그화 서블릿' 가장 중요함 !
ch02.3 JSP 문법
🤓 전부 사용되지 않아서 몇 개만 추려 배울 예정
JSP의 기본요소
- HTML과 태그로 구성되어 있으며, 태그 안에 자바 코드를 삽입하여 구현
- 기본 태그 요소중 'EL요소' 가 가장 많이 쓰임
JSP 스크립팅 요소
- JSP 페이지가 서블릿으로 변환시 JSP 엔진에 의해 처리
| 스크립팅 요소 | 예제 |
| Comment tag (주석 태그) | <%-- 주석 --%> |
| Directive tag (지시어) | <%@ 지시자 %> |
| Declaration tag (선언 태그) | <%! 자바 선언문 %> |
| Scriptlet tag | <% 자바 코드 %> |
| Expression tag | <%= 자바 표현식 %> |
- <%@ include file = "포함할 페이지"%>
: 현재 페이지에서 다른 html 및 jsp 페이지를 삽입할 수 있는 방법

- 표현식 태그(Expression tag)
<%@ page import = "java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8"%>
<!DOCTYPE>
<html lang="ko">
<head>
<title>스크립트릿 실습</title>
</head>
<body>
<h1>
현재 날짜 출력 실습
</h1>
<%
Date date = new Date();
int sum = 0;
for(int i=0; i<10; i++){
sum +=1;
}
Date d2 = null;
%>
현재 날짜 = <%= date %> <br>
1~10의 합: <%= sum %> <br>
<%=d2%>
</body>
</html>
- <% ~ %> : 지역 변수
- 현재 날짜 부분에 해당 값이 들어감
- 해당 코드는 이해하기 어려워서 사용할 기능은 아님
🤓 코드에서 대소문자 구분은 필수다. (문자열이 틀리면 null 출력/숫자가 틀리면
- Redirect:
POST, PUT, DELETE는 꼭 redirect 기능을 사용함
HTML5의 Form
서블릿에서 파라미터 처리
- 서블릿의 한글 처리
- GET이냐 POST이냐에 따라 다름
- GET 방식: URL을 UTF-8로 인식 → 한글 인코딩 지정 필요없음
- POST 방식: 톰캣의 디폴트 문자 인코딩 방식이 다름(edu-kr) ㅁUTF-8로 인코딩 해야함
request.setCharacterEncoding("UTF-8");
- getParameter(name) 메서드
- 하나의 파라미터 값 추출
- 해당하는 파라미터 없다면 null 리턴
- getParameterValues(name) 메서드
- check, select, email 처럼 하나 이상의 값을 가지는 파라미터 추출시
- String[ ]은 null 가능한지 확인 필요


실습
405 error 기억해두기
<jsp:include/> 액션태그
- 동적으로 삽입이 이루어짐

예시 코드
- header.jsp
<html>
<head>
<title>Title</title>
</head>
<body>
<%
// 싱글톤 패턴
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
%>
현재 시간은 <%=hour %> 시 <%= minute%> 분 <%=second%> 초 입니다.
</body>
</html>
- main2
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>include 액션 실습</title>
</head>
<body>
<h1>include 액션 태그 실습</h1>
현재 시간을 구하는 예제입니다. 다음줄에 삽입이 됩니다. <br>
<jsp:include page="header.jsp" flush="true"/>
</body>
</html>
'KB IT's Your Life > 교육' 카테고리의 다른 글
| [059] EL과 JSTL (0) | 2024.07.31 |
|---|---|
| [058] 세션, 쿠키, 포워딩 (0) | 2024.07.30 |
| [056] 알고리즘: 암시적 그래프 (0) | 2024.07.26 |
| [055] 웹 애플리케이션 프로젝트 + JSP (0) | 2024.07.25 |
| [053] MongoDB JAVA 연동 (3) | 2024.07.23 |