💻 <!-- dev -->

    [Spring] Spring에서 Ajax 사용하기 1 - 기본 설정과 Ajax 사용법 2가지(HttpSession 이용/응답할 데이터를 문자열 타입으로 반환)

    더보기 Spring에서 Ajax를 사용해 보자 0️⃣ Project 생성 및 기본 설정 1) 새로운 Spring Legacy Project 생성 2) Project name: Ajax_Project 설정 후 Template 중 Spring MVC Project 클릭 후 Next 3) top-level 설정 👉🏻 두 번째 level까지는 도메인 역순 👉🏻 세 번째 level은 contextPath 4) HomeConroller, Home.jsp 삭제 👉🏻 top-level로 지정한 경로 기준으로 스프링이 자동 생성해 주는 Controller와 메인 페이지 👉🏻 우리가 직접 페이지나 Controller를 만들었을 때 충돌이 날 위험이 있으므로 삭제함 💡 여기서 잠깐 참고! Spring_Project에서는 자..

    [Spring] Spring 웹 사이트 만들기 7 - 게시판(쿼리스트링을 숨길 수 있는 게시글 삭제/수정)

    🔥 게시글 삭제 🔥 ⌨️ boardDetailView.jsp 👉🏻 로그인 한 유저와 글을 쓴 유저가 일치할 때만 수정/삭제 버튼이 보이게끔 조건 설정 및 링크 걸기 👉🏻 수정/삭제 많이 해 봤고 링크 뻔하니까 함께 걸어 봄 ^^* 수정하기 삭제하기 📍 그런데 여기서 잠깐! 코딩 좀 할 줄 아는 놈이 나쁜 맘 먹고 아래 코드를 쳐 버린다면? http://localhost:8006/spring/delete.bo?bno=100 boardNo: 100의 글이 실제로 삭제될 것! 😱 즉, 해킹의 위험에서 벗어나기 위해 쿼리스트링이 노출되지 않도록 하고 싶음! 💻 boardDetailView.jsp 게시글 상세보기 목록으로 제목 ${ b.boardTitle } 작성자 ${ b.boardWriter } 작성일 ${ ..

    [Spring] 스프링에서 파일을 업로드(첨부파일) 하기 위한 라이브러리 2가지

    ⌛️ 현재 상황 👉🏻 게시글 글을 쓰고 등록하기를 눌러 보면 👉🏻 웰컴 투 널 파티 ^^... 심지어 첨부파일은 아무런 내용 없이 그냥 Null이다 🔧 상황 정리 요청 시 name 속성과 필드명을 정확하게 맞췄음에도 불구하고 제대로 된 전달값이 안 들어옴 요청 시 분명히 파일을 넘겼음에도 불구하고 upfile 값이 null 👉🏻 파일 업로드에 필요한 Spring 라이브러리를 pom.xml에 추가하지 않았기 때문 👉🏻 파일 업로드용 라이브러리: commons-fileupload, commons-io 💻 pom.xml 코드 한 눈에 보기 commons-fileupload commons-fileupload 1.4 commons-io commons-io 2.11.0 💻 root-context.xml 코드 한 눈..

    [Spring] Spring 웹 사이트 만들기 7 - 게시판(게시글 작성/상세 조회)

    🔥 게시글 작성 - 1개의 첨부파일 업로드🔥 더보기 * 만약 다중파일 업로드를 구현하고 싶다면? 👉🏻 jsp 에서 여러 개의 input type="file" 요소에 모두 동일한 name 속성을 부여 (ex. upfile) 👉🏻 Controller의 메소드에서 MultipartFile[] upfile 또는 List upfile로 받으면 됨! 💻 .jsp 💻 Controller ~~(MultipartFile[] upfile) { ~~(List upfile) { 👉🏻 0번째 인덱스에서부터 차곡차곡 첨부파일의 정보들이 담겨 있음 : 반복문 활용 가능 👉🏻 이런 식으로 진행한다면 Attachment 클래스, 테이블을 따로 빼야 함! 💻 boardEnrollForm.jsp 생성 👉🏻 폼에서 head 영역 conte..

    [Spring] Spring 웹 사이트 만들기 6 - 게시판(전체 조회, 페이징 처리)

    🔥 게시판 전체 조회 전 기본 설정 🔥 💻 Board VO 클래스 구성 (lombok 활용) package com.kh.spring.board.model.vo; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; @NoArgsConstructor @Setter @Getter @ToString public class Board { private int boardNo; //BOARD_NONUMBER private String boardTitle; //BOARD_TITLEVARCHAR2(100 BYTE) private String boardWriter; //BOARD_WRITERVA..

    [Spring] JSP File 생성 시 기본 코드 수정하기

    1️⃣ Preferences - Web - JSP Files - Editor - Template 접속 후 New JSP File(html 5)를 찾아 Edit 버튼 클릭 2️⃣ 내가 JSP File을 만들었을 때의 기본 틀 중 원하는 구문 추가 후 OK 💻 내가 추가한 구문은 taglib 지시어 구문 3️⃣ 잘 적용해 준 뒤 새로운 JSP File을 만들어 보면 4️⃣ taglib 지시어가 포함된 기본 코드가 나옴!

    [Spring] Alert창 꾸미기 - AlertifyJS

    1. https://alertifyjs.com/ 접속 AlertifyJS All of AlertifyJS animation/transition effects are disabled due to user preference that the system minimizes the amount of animation or motion it uses. See prefers-reduced-motion CSS media feature. alertifyjs.com 2. AlertigyJS를 정의하기 위해 Getting Started 접속 후 CDN 코드 head 영역에 붙여 넣기 💻 예시 코드 (나의 경우, 부트스트랩 코드는 기존에 붙여 넣은 게 있기 때문에 넣지 않았음! 기존 코드에 없다면 함께 붙여 넣을 것) 3...

    [Spring] Spring 웹 사이트 만들기 5 - 마이페이지(회원 정보 변경, 회원 탈퇴)

    🔥 회원 정보 변경 기능 🔥 💻 header.jsp 👉🏻 마이 페이지 링크 지정 ${ loginUser.userName }님 환영합니다 마이페이지 로그아웃 💻 myPage.jsp 생성 👉🏻 미리 받은 폼의 body 부분 붙여 넣기 (head 영역은 header에 이미 지정되어 있으므로 include 할 것) 👉🏻 header, footer.jsp 페이지 include 👉🏻 하드코딩된 각각의 value(id, 이름, 이메일, 주소...)에 로그인된 유저의 정보 넣기 👉🏻 커멘드 객체 방식을 이용할 것이기 때문에 필드명과 name 속성을 일치시켜 줌 마이페이지 * ID : * Name : Email : Age : Phone : Address : Gender : 남자 여자 수정하기 회원탈퇴 회원탈퇴 × 탈퇴 ..

    [Spring] 새로운 라이브러리를 사용하고 싶다면?

    1) maven repository에서 .jar 코드 받아 넣기 2) web.xml에 bean 등록 3) 끌어서 쓰기

    [Spring] 비밀번호 암호화 - Bcrypt를 위한 스프링 시큐리티 모듈

    ⌛️ 현재 상황 DB에 사용자의 비밀번호가 그대로 노출되는 것은 🚨 불법입니다 🚨 암호화해야 함! 현재 비밀번호가 사용자가 입력한 그대로의 평문임 사람이 그냥 눈으로 의미를 파악할 수 있는 데이터: 평문 사람이 그냥 눈으로 의미를 파악할 수 없게 처리한 데이터: 암호문 👉🏻 스프링에서 제공하는 Bcrypt 방식으로 비밀번호를 암호화 할 것 암호화 적용하는 법 1) 스프링 시큐리티 모듈에서 제공하는 라이브러리를 추가 (Maven) 스프링 시큐리티 모듈 라이브러리들 (core, web, config)의 버전을 모두 일치시켜야 함 https://mvnrepository.com/ 👉🏻 3개 모두 다운로드받아야 함 👉🏻 Usages가 높은 5.7.3으로 통일하려 함 💻 pom.xml org.springframew..