본문 바로가기

BACK

(17)
[기본 자료구조-Class] Extends 와 Implements 의 차이점 1. Extends 1) 일반클래스, 추상클래스(abstract 클래스)에 상속 2) 오버라이딩(재정의)x 3) 다중 상속 x 4) class to class, interface to interface 상속은 extends를 사용한다 2. Implements 1) interface 상속 ** 인터페이스 - 모든 멤버변수는 public static final (생략가능) - 모든 메서드는 public abstract (생략가능) - 그 자체로 인스턴스 생성 x -> implements 사용하여 구현 2) 오버라이딩(재정의)0 -> 부모 객체는 선언안할시 정의 내용을 자식에서 오바라이딩(재정의)해서 사용 3) class 클래스 이름 implements 인터페이스 이름 // 인터페이스에 정의된 추상 메소드 구..
[기본 자료구조 - Class] 중첩 클래스 중첩 클래스 멤버 클래스 (Member Class) - 인스턴스 내부 클래스, 정적 내부 클래스 지역 클래스 (Local Class) - 지역 내부 클래스 익명 클래스 (Anonymous Class) - 익명 내부 클래스 1. 멤버 클래스 : 선언이 다른 클래스 또는 인터페이스 선언에 의해 직접 둘러싸인 클래스 1) 인스턴스 내부 클래스 : 클래스 안에 선언된 클래스, 즉 필드를 선언하는 위치에 있는 클래스 package ex2_1; public class InnerExam1 { class Cal{ //내부 클래스 int value = 0; public void plus(){ value++; } } 내부 클래스 안에 있는 함수를 쓰기 위해서는 아래 코드와 같이 외부 클래스를 먼저 생성하고, 이후 내부 클..
[Datatables.js] Datatables 이용하여 테이블 만들기(사용법) 1. https://datatables.net/ - css/js 등 필요한 파일 연결 2. table 하나 그린 뒤 (스크립트 작성) 테이블 만들기 회원번호 이메일 이름 전화번호 3. Controller - 해당 페이지 연결 - 페이징 처리 포함하여 데이터 넘겨주기 (Ajax) : PageRequest - 몇 페이지, 한 페이지의 사이즈, Sorting 방법(Option)을 가지고, Repository에 Paging을 요청할 때 사용하는 것 - PageRequest의 생성에는 찾을 page와 한 페이지의 size를 필수 인자로 받는다. - Repository에서 findAll 메서드를 살펴보면 위와 같이 Pageable을 인자로 줄 수 있다. PageRequest는 Pageable 클래스를 impleme..
[JPA] JPA 페이징 처리 하기 (타임리프 기반) 총 페이지 버튼이 화면에 10개씩 보이게 하고, 10이거나 10을 넘어갈 경우 다음 버튼이 생기며, 10을 넘어갈 경우 이전버튼이 생겨 각각의 화면의 페이지 첫번째 버튼으로 이동 하기 1. @PageableDefaualt @PageableDefaualt(sort={"id"}, size=10, direction=Sort.Direction.ASC - sort={"id"} : 해당 id를 기준으로 - size=10 : 한 화면에 10개 정보씩 - direction=Sort.Direction.ASC : 오름차순(내림차순) 정렬 2. Controller - (@PageableDefault(sort = { "id" }, size = 10, direction = Sort.Direction.ASC) Pageable p..
[JPA AJAX] CrudInterface를 통한 create, read, update, delete "AJAX" : 새로고침하지 않고 서버로 데이터를 주고 받는 방법 1. CrudInterface 2. CrudController implements CrudInterface 3. entity, request, response 4. 페이지 컨트롤러, api 컨트롤러 extends CrudController 1) 출력 - findAll : 모든 정보 출력 - findById : 특정 아이디의 정보 출력하고 싶을때 -> AJAX 이용 : id를 받아 그 아이디 응답 결과 출력(response) 2) 등록 - create : 계정등록, 권한 등록 후 리턴 -> AJAX 이용 : Request 요청한 data 넘겨줘서 응답받음(response) 3) 수정/추가 - update : 특정 아이디로 데이터 가져와서 수..
[JPA Security Login] 시큐리티 로그인 필수 설정 "시큐리티 로그인" 이란 ? -> 사람이 비밀번호를 입력하면 서버에는 평문으로 넘어오는데, 그 평문을 스프링이 자동으로 암호화하고, 이미(회원가입시) 암호화되서 들어가 있는 디비의 패스워드와 비교하여 로그인하는 것 1. JpaConfig - jpa를 사용한다면 무조건 2. NamingStrategy - 명명전략 3. UserUtils - 로그인 상태 제어, 회원 권한 상태 제어 4. WebSecurityConfig - password암호화 - 자동 로그인 - 권한별 페이지 제어 설정 5. UserLogin - 엔티티 설정 (username,password,rememberme 등) 6. CustomLoginFilter - UserLogin에 요청하는 값 저장 7. UserSecurityService - e..
[SpringBoot JSP] 게시판목록을 메인화면에연결 1. Controller (indexController.java) @RequestMapping(path = {""}) public ModelAndView index(Principal principal, @RequestParam(value = "logout", defaultValue = "false") Boolean logout) { //문의하기 /*page:1 -> page가 1페이지인것 출력, page:2 -> page가 2페이지인것*/ List contents = noticeService.appearNoticeInfo(2); //리뷰하기 PageInfo pageInfo = new PageInfo(1, 7); pageInfo.setItemCountTatal(noticeRepository.getPageC..
[SpringBoot JSP] 게시판-페이징 처리/방법 2 1. domin 작성 (PageInfo.java) package com.example.crud.domain; import lombok.Getter; import lombok.Setter; import javax.lang.model.type.IntersectionType; @Getter @Setter public class PageInfo { private int currentPage = 1; private int pageTotal; //페이지 전체 갯수 private int startPageIndex; //현재 보여지는 페이지의 첫번째 인덱스(1부터 시작) private int endPageIndex; //현재 보여지는 페이지의 마지막 인덱스(1부터 시작) private int blockPage = 5;..