마트철수

[057] JSP 그리고 HTML5 Form 태그화 서블릿 본문

KB IT's Your Life/교육

[057] JSP 그리고 HTML5 Form 태그화 서블릿

마트스 2024. 7. 29. 17:53

 
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 페이지를 삽입할 수 있는 방법

Servlet과 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 가능한지 확인 필요

 

form의 action 명과 URL MAPPING 명을 일치시켜야함

 
 

실습


 

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