728x90
20221102(수)
- 목차
- JSTL I18N태그 라이브러리
- JSTL Functions 라이브러리
- 기본이론
- 스프링 프레임워크
- CRUD 기능
< JSTL >
- JSTL(JSP Standard Tag Library) 은 표준 커스텀 태그(Custom Tag)
커스텀 태그 : 사용자 정의 태그 - JSP페이지의 로직을 담당하는 부분인 제어문 및 데이터베이스 처리 등을
표준 커스텀태그로 제공하여 코드를 깔끔하게 하고 가독성을 좋게 함.
< JSTL I18N태그 라이브러리 >
- 라이브러리
: SQL(데이터베이스) - 제공기능
: 로케일(사용자의 언어, 국가뿐 아니라 사용자 인터페이스에서 사용자가 선호하는 사항을 지정한 매개 변수의 모임), :
: 메시지, 숫자 문자 형식 등 - JSTL fmt 태그 리스트
<fmt:requestEncoding> | request.setCharacterEncoding()과 같은 역할, 즉 한글 인코딩! 역할 |
<fmt:setLocale> | 다국어를 지원하는 페이지를 만들 경우 사용 ResourceBundle 로 불러오는 *.properties 파일들과 연계 |
<fmt:timeZone> | 타임 존(Time Zone)을 적용할 때 사용 |
<fmt:setTimeZone> | 특정 scope의 타임 존을 설정할 때 사용 |
<fmt:bundle> | properties 확장자를 사용하는 자원 파일을 읽어오는 역할 |
<fmt:setBundle> | 페이지 전체에서 사용할 수 있는 번들(bundle)을 지정하는데 사용 |
<fmt:message> | <fmt:bundle>태그에서 정한 값들을 가져옴 |
<fmt:param> | <fmt:message>태그의 서브태그 <fmt:message>태그에서 설정하지 않은 값을 설정 |
<fmt:formatNumber> | 숫자 형식을 표현할 때 사용 |
<fmt:parseNumber> | 문자열을 숫자로 변환 시에 사용 |
<fmt:formatDate> | 날짜 형식을 표현할 때 사용 |
<fmt:parseDate> | 문자열을 날짜로 변환 시에 사용. |
< 기본이론 >
- 프레임워크(FrameWork)
: 사전적 의미 : 툴
: 구조가 설계가 되어있다. - 빌드(컴파일) 및 라이브러리 관리 프로그램
(1) Maven(메이븐)
: 스프링 프레임워크에는 메이븐이 포함되어 있다.
: pom.xml
➡ 프로젝트에서 사용하고 싶은 라이브러리 정보 명시.
: maven repository 검색
https://mvnrepository.com/
로컬 컴퓨터 안의 스프링 프로젝트 maven-pom.xml에
maven central site의 JSTL의 maven<dependency>에서 제공하는 무료제공 라이브러리가 들어감
로컬 리포지터리 : 필요한 라이브러리들이 내 pc에 존재하는지 확인함
존재하지 않으면 자동으로 네트워크를 따라 maven central site로 들어가
jstl 안에 무료제공되는 라이브러리를 다운받아
로컬 리포지터리에 저장해서 프로젝트에 로딩시킨다!
* 라이브러리를 자동화 관리함. ➡ Dependency 의존성
(2) Gradle(그래들)
< 스프링 프레임워크 >
- 설계구조
- MVC 패턴으로 설계가 되어있다.
M : Model -> 데이타소스와 로직
V : view -> 화면
C : controlelr -> 클라이언트의 요청담당 - 예를들면, jsp파일안에 3가지 내용이 포함되어서 작업이 이루어졌다.
- JSP 파일을 요청하는 것이 아니라, Controller 기능의 클래스를 만들고, 주소를 생성하여 요청을 받는다.
- 톰캣 서비스가 시작되면, 기본주소(/)는 자동으로 호출된다.
- jsp 파일 작업 시 톰캣 서비스는 중지 안해도 된다.
- JSP 파일명 규칙
- 메서드의 리턴값이 void일 경우에는 매핑주소가 파일명이 된다.
- 메서드의 리턴값이 String일 경우에는 리턴값의 문자열이 파일명이 된다.
package com.demo.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller // 클래스는 클라이언트의 요청을 받을 수 있다.
public class SampleController {
// 로그 객체 : 위의 클래스가 동작시 로그로 사용하는 목적. 클래스명 동일해야 함.
private static final Logger logger = LoggerFactory.getLogger(SampleController.class);
@RequestMapping("doA") // 매핑주소 : 클라이언트에서 사용할 주소. 주소와 메소드명은 상관이 없다.
public void doA() {
logger.info("doA called...");
}
/*
매핑주소가 doA이고, 호출되는 메소드 void doA() 일때, 리턴값이 void이면, jsp파일명은 매핑 주소로 해야한다.
*/
@RequestMapping("doB") // 매핑주소가 jsp 파일명.
public void doB() {
logger.info("doB called...");
}
@RequestMapping("tA")
public String testA() {
logger.info("testA called...");
return "a"; // 리턴값의 문자열이 JSP 파일명.
}
}
HomeController
package com.demo.controller;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
// 톰캣 서비스가 시작되면, 기본주소인 "/" , http://localhost:8888 요청이 이루어진다.
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
}
< CRUD 기능 >
- Create(등록) : Insert문을 이용한 작업
- Read(조회) : Select문을 이용한 작업
- Update(수정) : Update문을 이용한 작업
- Delete(삭제) : Delete문을 이용한 작업
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[72일차] 개발툴 / 스프링 프레임워크 / 마이바티스 / 스프링에서 bean생성하는 유형 (0) | 2022.11.04 |
---|---|
[71일차] JSON / 롬복 라이브러리 / 의존성 주입 / Spring-Test / MyBatis xml 파일 사용하기 (0) | 2022.11.04 |
[69일차] 쿠키 / 표현언어 Expression Language : EL (0) | 2022.11.03 |
[68일차] session 객체 / application 객체 / 내장객체의 영역 / JSP 페이지의 모듈화 / 데이터베이스와 JSP의 연동 (0) | 2022.11.02 |
[67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체 (0) | 2022.11.01 |