5/17(월) JSTL Library(2)
2. JSTL Formatting Library
: 숫자, 날짜 및 시간 데이터의 출력 형식을 지정할 때 사용하는 문법 제공
taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"
1) formatNumber
: 숫자 데이터의 출력형식(포맷) 지정
- 표현하고자 하는 숫자 데이터 형식을 통화기호, % 등 원하는 쓰임에 맞게 지정하는 태그
<c:set var="num1" value="123456789" />
그냥 출력 : ${ num1 } <br>
세자리마다 구분하여 출력 : <fmt:formatNumber value="${ num1 }" /> <br>
숫자 그대로 출력 : <fmt:formatNumber value="${ num1 }" groupingUsed="false" /> <br>
<!-- groupingUsed : 숫자단위의 구분자(,) 표시 여부 지정 -->
<c:set var="num2" value="0.75" />
<c:set var="num3" value="50000" />
percent : <fmt:formatNumber value="${ num2 }" type="percent" /> <br>
currency : <fmt:formatNumber value="${ num3 }" type="currency" /> <br>
currency : <fmt:formatNumber value="${ num3 }" type="currency" currencySymbol="$" groupingUsed="false"/>
<!--
type : 백분율(percent), 통화기호(currency) 지정
currencySymbol : 통화기호 문자 지정
-->
2) formatDate
: 날짜 및 시간 데이터의 출력형식(포맷) 지정
-java.util.Date 객체를 사용해야 됨
<c:set var="today" value="<%= new java.util.Date() %>" />
<ul>
<li>그냥 출력 : ${ today }</li>
<li>현재 날짜 : <fmt:formatDate value="${ today }" type="date" /></li>
<!-- type 생략가능 (기본값: date) -->
<li>현재 시간 : <fmt:formatDate value="${ today }" type="time" /></li>
<li>둘 다 : <fmt:formatDate value="${ today }" type="both" /></li>
<li>[Full] : <fmt:formatDate value="${ today }" type="both" dateStyle="full" timeStyle="full" /></li>
<li>[Long] : <fmt:formatDate value="${ today }" type="both" dateStyle="Long" timeStyle="Long" /></li>
<li>[Medium] : <fmt:formatDate value="${ today }" type="both" dateStyle="Medium" timeStyle="Medium" /></li>
<li>[Short] : <fmt:formatDate value="${ today }" type="both" dateStyle="Short" timeStyle="Short" /></li>
<li>내 패턴 : <fmt:formatDate value="${ today }" type="both" pattern="yyyy-MM-dd (E) HH:mm:ss()" /></li>
</ul>
3. JSTL Function Library
: EL 안에서 사용할 수 있는 메소드를 제공
<예시>
<c:set var="str" value="How are you?" />
str: ${ str } <br>
문자열의 길이 : ${ str.length() } <br>
문자열의 길이 : ${ fn:length(str) } <br>
모두 대문자로 출력 : ${ fn:toUpperCase(str) } <br>
모두 소문자로 출력 : ${ fn:toLowerCase(str) } <br>
are의 시작위치 : ${ fn:indexOf(str, 'are') } <br>
are=> were로 변경하기 : ${ fn:replace(str, 'are', 'were') } <br>
replace 후 str : ${ str } <!-- 아예 변경되지는 않음 --> <br>
<c:if test="${ fn:contains(str, 'are') }">
포함되어 있음
</c:if>
myBatis
Framework
프레임워크(FrameWork)
- 개발자가 보다 편리한 환경에서 개발 할 수 있도록 제공하는 틀, 뼈대라고 생각하면 됨
- 사전적 정의로는 '복잡한 문제를 해결하거나 서술하는데 사용하는 기본 개념 구조'
- 소프트웨어 개발의 입장으로는 '공통으로 사용하는 라이브러리/개발도구/인터페이스 등등을 의미'
프레임워크를 왜 써야 되는지 (필요성)
- 현재 웹프로그래밍의 추세는 엄청난 규모의 프로젝트가 많음
=> 거대하고 복잡도 높은 프로젝트를 하기 위해서 많은 개발자들이 필요함
=> 개발자들이 "통일성"있게 "빠르고" "안정적"으로 개발하기 위해 프레임워크란 매우 좋은 성과를 내고 있음
=> 생산성 향상
프레임워크의 특징
- 자유롭게 설계하고 코딩하는 것이 아니라 프레임워크가 제공하는 가이드대로 설계하고 코딩을 해야됨
- 개발자를 위한 다양한 도구들이 지원됨
- 개발할 수 있는 범위가 정해져있음
- 개발자들이 따라야 하는 가이드라인 제공 --> 그 가이드 라인대로 작업해야됨, 세팅해야됨
* 프레임워크의 장점
- 개발시간을 줄일 수 있음
- 오류로부터 자유로울 수 있음
- 유지보수에 용이
* 프레임워크의 단점
- 프레임워크에 너무 의존하면 개발자들의 능력이 떨어질 수 있다
- 습득하는데 오랜 시간 걸릴 수 있음
* 프레임워크 종류
- 영속성 : 데이터 관련한 CRUD 기능들을 보다 편리하게 작업할 수 있도록 제공해주는 프레임워크 ex)MyBatis, Hibernate...
- 자바 : 웹애플리케이션에 초점을 맞춰 필요한 요소들을 모듈화해서 제공해주는 프레임워크 ex) Spring, Struts
- 화면단 : Front-End를 보다 쉽게 구현할 수 있게 틀을 제공해주는 프레임워크 ex)부트스트랩,,
- 기능 및 지원 : 특정 기능이나 업무 수행에 도움을 줄 수 있는 기능을 제공하는 프레임워크 ex) Log4j, JUnit,...
mybatis 개요
- 개발자가 지정한 sql, 저장 프로시저 그리고 몇가지 고급 매핑, 동적 sql문 등을 지원하는 영속성 프레임워크
- JDBC로 처리하는 부분의 코드와 파라미터 설정 및 결과 매핑을 대신해줌
- 기존에 Apache에서 ibatis를 운영하던 팀이 2010년도에 Google로 팀 이동하면서 mybatis로 이름을 변경 ( ibatis는 현재 비활성화 상태, 단지 라이브러리만 제공하고 있는 상태)
=> ibatis는 JDK 1.4이상, mybatis는 JDK 1.5이상 사용 가능
기본 구조
- 개발자가 보다 편리한 환경에서 개발 할 수 있도록 제공하는 틀, 뼈대라고 생각하면 됨
- 사전적 정의로는 '복잡한 문제를 해결하거나 서술하는데 사용하는 기본 개념 구조'
- 소프트웨어 개발의 입장으로는 '공통으로 사용하는 라이브러리/개발도구/인터페이스 등등을 의미'
- 현재 웹프로그래밍의 추세는 엄청난 규모의 프로젝트가 많음
=> 거대하고 복잡도 높은 프로젝트를 하기 위해서 많은 개발자들이 필요함
=> 개발자들이 "통일성"있게 "빠르고" "안정적"으로 개발하기 위해 프레임워크란 매우 좋은 성과를 내고 있음
=> 생산성 향상
- 자유롭게 설계하고 코딩하는 것이 아니라 프레임워크가 제공하는 가이드대로 설계하고 코딩을 해야됨
- 개발자를 위한 다양한 도구들이 지원됨
- 개발할 수 있는 범위가 정해져있음
- 개발자들이 따라야 하는 가이드라인 제공 --> 그 가이드 라인대로 작업해야됨, 세팅해야됨
- 개발자가 지정한 sql, 저장 프로시저 그리고 몇가지 고급 매핑, 동적 sql문 등을 지원하는 영속성 프레임워크
- JDBC로 처리하는 부분의 코드와 파라미터 설정 및 결과 매핑을 대신해줌
- 기존에 Apache에서 ibatis를 운영하던 팀이 2010년도에 Google로 팀 이동하면서 mybatis로 이름을 변경 ( ibatis는 현재 비활성화 상태, 단지 라이브러리만 제공하고 있는 상태)
=> ibatis는 JDK 1.4이상, mybatis는 JDK 1.5이상 사용 가능
Filter 만들기
: Filter 기본 구조
package com.kh.mybatis.common;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
* Servlet Filter implementation class EncodingFilter
*/
@WebFilter("/EncodingFilter")
public class EncodingFilter implements Filter {
/**
* Default constructor.
*/
public EncodingFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// Servlet 구동 전에 실행시키고자 하는 코드 작성
chain.doFilter(request, response); // 다음 필터가 있다면 그 다음필터 호출, 다음 필터 없다면 Servlet 호출
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
Author And Source
이 문제에 관하여(5/17(월) JSTL Library(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alsrnr45/517월-JSTL-Library2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)