개요 JDK 8에 추가됨 (java.util.stream 패키지) 기본적으로 표준 API 함수적 인터페이스 사용함 기존에 사용했던 컬렉션(List, Set, Map)은 데이터를 저장하는 역할에 촛점을 맞춤 자바 스트림 API를 이용하면 컬렉션에 저장된 데이터를 연산(중간처리, 최종처리)이 가능하다. 중간처리: 컬렉션에 지정된 데이터를 정렬, 중복제거, 필터링, skip 등의 작업 최종처리: 컬렉션에 지정된 데이터를 중간처리를 거쳐서 나온 값들을 반복출력, 타입변환(List→Map), 그룹핑, 통계처리(합계,평균,최대,최소,갯수) 등의 작업 ⇒ 자바코드로 SQL 같은 작업을 할 수 있다. 자바 스트림 API 이용 3단계 컬렉션(배열)에서 스트림을 생성 List list = Arrays.asList("홍길동..
1)순서 인터페이스 --> 익명클래스 --> 람다(lambda) --> 표준 API 함수적 인터페이스 --> 자바스트림 API (컬렉션 기반) 2)람다(lambda) 표현식 자바는 최소단위가 클래스이다. 메서드능(기능) 하나만 필요해도 무조건 클래스를 만들어야 된다. 매우 비효율적이다. 기능에만 집중해서 충실하게 프로그래밍 하자 ==> 함수형 프로그래밍(functional programming ) 역할: 익명클래스의 추상 메서드를 표현하기 위한 식이다. 특징: 반드시 추상 메서드는 하나만 존재해야 된다. 두 개 이상인 경우에는 람다(lambda) 표현식 사용불가. @FunctionalInterface 어노테이션을 이용하여 두 개 이상의 추상 메서드가 선언되지 못하도록 강제한다. ( default 메서드 ..
JSTL ( Jsp Standatd Tag Library ) 1️⃣ 개요: 사용자 태그 (커스텀 태그) 사용이 가능하다. ex) 2️⃣ 자바의 웹 개발자가 실제로 jsp에서 필요한 사용자 태그를 만들어서 제공하고 그것을 사용하는 방법에 촛점을 맞춘다. 3️⃣ 누가 제공? 아파치(apache)에서 무료로 제공 4️⃣ 사용 방법 ✅ apache 사이트에서 필요한 jar 파일 다운로드 http://jakarta.apache.org The Jakarta Site - The Apache Jakarta™ Project -- Java Related Products Founded in 1999, the Jakarta Project housed a diverse set of popular open source Java ..
1️⃣ 문법 ${표현식} ⇒ 표현식에 사용할 수 있는 것은 10(실제값) 또는 변수(scope에 setAttribute에서 사용된 key값) ${ 10 } ${ 10+3 } //산술연산 ${ 10>3 } //비교연산 ${ 10>3 && 4==3 } //논리연산( &&, ||, ! ) 2️⃣ 동작: 브라우저에 출력된다. 3️⃣ 주요한 기능 ✅ 서블릿에서 scope에 저장된 데이터를 웹 브라우저에서 매우 편리하게 출력할 수 있다. 서블릿 작업 request.setAttribute(”userid”, “홍길동”); jsp 작업 ⇒ 한번에 EL로 표기가 가능하다. ${userid} 👇👇👇 ✅ null 값을 비어있는 값으로 처리한다. ⇒ NullPointterEXception 발생 안됨 ✅ null 여부 확인 방법..
지난 번에 만들었던 게시판 구축 프로젝트 중 (06_board) 특정 글자 검색 후 나오는 목록 중 첫 페이지는 잘 나오는데 두번째 페이지부터는 검색한 레코드가 저장되지 않고 원상복귀 되는 이슈를 발견하였다. searchName과 searchValue가 DTO에 저장 되지 않은 것으로 판단하고 검색한 레코드를 페이징 처리할 수 있게 추가해주는 방법으로 오류를 해결한 과정을 기록하고자 한다. 🧨 에러 발생 💡 해결 과정 💻 결과
✅ 07_paging 프로젝트 생성 ✅ BoardMapper.xml 에 전체목록 정렬 ✅ BoardDTO.java ✅ 생성 후 list.jsp 에서 필요한 4개의 정보를 묶어주는 클래스인 PageDTO.java 생성 ✅ getter / setter 생성 ✅ BoardDAO.java ✅ new RowBounds (시작위치, 갯수) ✅ 시작위치 = (현재 page - 1)*갯수 ✅ BoardService.java 생성 ✅ BoardServiceImpl.java 생성 ✅ BoardListServlet.java 생성 ✅ list.jsp 💡 실행 => 오류 발생 에러 잡기 위한 코드 추가 DAO에서 pageDTO를 가져오기만 하고 저장을 안한 실수가 있었다 ! 코드 추가하기 ! ✅ 하이퍼링크 추가 💡 결과
✅ 페이징 처리 위해 필요한 것들 정렬 page당 레코드 몇 개를 보여줄지 전체레코드갯수 현재 페이지 번호 정해진 레코드 갯수의 글만 보여지는 리스트 ⇒ 2~5번의 4개의 data를 뭉쳐서 관리해야함 ⇒ PageDTO.java ✅ PageDTO.java 생성 ✅ 4가지 정보 작성 ✅ gettet / setter 메서드 생성 ✅ 정렬 ✅ BoardDAO.java ✅ BoardDAO.java ✅ BoardListServlet.java ✅ ✅ BoardService.java ✅ BoardServiceImpl.java ✅ BoardDAO.java ✅ BoardMapper.xml ✅ BoardDAO.java ✅ BoardListServlet.java ✅ list.jsp
✅ list.jsp 에 검색 화면 작성 ✅ 결과 ✅ 추가 ✅ 결과 ✅ 검색 하기 위해 디벨로퍼 통해 목록을 더 추가해줌 insert into board ( num, title, author, content ) values ( board_seq.nextval , '테스트', '홍길동', '테스트입니다' ); insert into board ( num, title, author, content ) values ( board_seq.nextval , '스마일', '홍이동', '테스트입니다' ); insert into board ( num, title, author, content ) values ( board_seq.nextval , '힘들다', '홍이동', '테스트입니다' ); insert into boar..