전체 글 133

[JSP] File Update, Delete

글 삭제 시 첨부파일 삭제 ‘글 수정’ 에 앞서 ‘글 삭제’ 부터 만들어 두면 좋다. 글 삭제시 두가지를 삭제 한다 1. 물리적으로 저장된 파일 2. DB 에 저장된 첨부파일 정보 - 이는 DDL 에서 ON DELETE CASCADE 로 설정해도 처리 된다. (Lec_DBMS #09강 Constraint) * FileDAO.java 에 추가 // List 의 물리적인 파일(들) 삭제 public int deleteFiles(List list, HttpServletRequest request) { if(list == null || list.size() == 0 || request == null) return 0; int cnt = 0; // 물리적인 경로 ServletContext context = req..

JSP 2022.04.12

[JSP] FileUpload / Download

FileUpload / Download cos 라이브러리 사용 ‘웹’에서 파일 업로딩 생각해볼 것 - 수많은 사람들이 접속하여 웹을 통해 업로딩된 파일은 서버의 어디에 저장되나? - 그 수많은 파일들은 어떤 이름으로 저장되어야 하나? - 업로드 하는 ‘파일 이름이 중복’되면 어떻게 해야 하나? - 애시당초 중복될 이름을 피할 방법은 있나? - 파일의 이름이 변경되어 업로딩된다면, 나중에 그 파일을 다시 다운로드 받을때는 어떤 이름이어야 하는가? - 업로딩 할때 변경된 이름? 업로딩 할때 원래 이름? 원래 이름은 어떻게 기억하고 있어야 하나? - 정해진 규격의 파일만 업로드 허용해야 한다면 어떻게 해야 하는가? ex) 이미지 파일만 올리기? 특정 포맷의 파일만 업로딩 ex) 특정 용량 이하의 파일만 업로딩..

JSP 2022.04.11

[JSP] Pagination

Pagination (페이징) MySQL + MVC2 간혹 프로젝트가 서버에서 꼬이는수가 있다 서버에서 다른 프로젝트 를 제거하고, 현재 작동하는 프로젝트만 add 한뒤. clean 해보고 시작하길 추천 구현시 고려할 요소들 한 ‘페이지’당 몇개의 글목록을 나타낼 것인가 한 [페이징]당 몇개의 페이지를 표현할 것인가? 고려 해야 하는 것들 [페이징]을 구현하기 위해서는 아래 두가지가 구현되어야 한다 1. 한 ‘페이지’에 몇개의 ‘목록’을 표시 할 것인가? → 세팅값 2. 한 [페이징]에는 몇개의 ‘페이지’를 표시 할 것인가? → 세팅값 3. ‘페이지’ 리스트에 표시되어야 할 ‘목록’이 총 몇개인가? → SQL 함수 count(*) 사용 4. ‘몇번째(fromRow)’ 부터 ‘몇개(pageRows)’를 S..

JSP 2022.04.11

[JSP] Authentification - 회원제 게시판

회원제 게시판 session 기반의 인증 (authentication) 1. 권한, 인가 (authorization) /list.do 글목록 누구나 접근 가능 /view.do 글조회 로그인만 하면 조회 가능 /write.do 글작성 ROLE_MEMBER 권한 있는 사람만 가능. /update.do 글수정 ROLE_MEMBER, 작성자만 가능 /delete.do 글삭제 ROLE_MEMBER, 작성자만 가능 회원 , 게시글 의 relation 1:N 관계, ERD DDL 샘플데이터 ERD 작성 user 테이블과 1:N 관계의 게시판 테이블 생성 기존 쿼리문에서 테이블명, 컬럼명 수정하기 글목록 '누구나' 접근 가능한 글 목록 페이지 부터 작성하기 특정 user id 값의 User 정보 읽어오기 준비 D.ja..

JSP 2022.04.10

[JSP] Authentication - 로그인/로그아웃

로그인/로그아웃 URL : 로그인 폼 작성하기 UserController GET/POST 방식 /WEB-INF/views -> login.jsp 생성 로그인 하세요 ${REDIRECT_ATTR.error } Username Password Remember me 로그인 회원가입 © 2017–2022 * UserController package controller; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; impo..

JSP 2022.04.10

[JSP] Authentication - 회원가입

* 인증 (Authentication : 자신을 증명) 내가 (스스로) 자신을 증명할 만한 자료를 제시 하는 것. * 인가 (Authorizatoin : 권한부여) - 남에 의해서 ‘자격’ 이 부여된것. * Authentication (인증) / Authorization (인가) 인증(Authentication) - 시스템 접근 시, 등록된 사용자인지 여부를 확인하는 것 - 로그인 인가(Authorization) - 접근 후, 인증된 사용자에게 권한을 부여하는 것 - 권한에따라 사용 가능한 기능이 제한됨 - 사용자 등급(ex: 일반/VIP/관리자) 1. Session 기반의 인증, 인가 - 회원가입, - 로그인, 로그아웃 인증 (authentication) - 권한, 인가 (authorization) 2..

JSP 2022.04.07

[JSP] JSTL(JSP Standard Tag Library)

1. JSP단점: HTML태그 + JSP태그가 혼재된 형태 가독성이 떨어짐, 유지보수 어려움 2. JSTL - 이를 보완하기 위해 개발자가 직접 태그 작성 가능함. 이를 커스텀태그 라 한다. - 이러한 ‘커스텀 태그’들을 모아 태그 라이브러리의 형태로 배포 되고 있고. - 이러한 ‘태그라이브러리’중 가장 많이 사용하는 대표적인 것들을 모아놓은 것이 바로 JSTL (JSP Standard Tag Library) 입니다. (표준화 됨) - JSTL 은 논리적 판단, 반복문 처리, 데이터베이스 등의 처리 가능 결국, JSTL 을 사용하는 궁극적인 목적은 스크립트릿을 대체하기 위함. - JSTL은 ‘Tomcat컨테이너’에 기본으로 포함되어 있지 않으므로, 별도의 설치를 한 뒤 사용해야 함 JSTL 설치 전에 체..

JSP 2022.04.06

[JSP] EL : Expression Language

EL (Expression Language) 표현언어 ? EL(Expression Language: 표현언어)란, 표현식 또는 액션 태그를 대신해서 ‘값’을 표현하는 언어입니다. Java 도 아니고, JSP 도 아니지만, JSP를 보완하는 스크립트 언어입니다. -> ${value} 표현식(익스페레션) EL EL사용 이점: 자바코드로 나타내기 번거로운 값(특히 속성값) 표현 단순화 액션태그, JSTL 등과의 조합에서도 코딩 간결. EL 의 기본구문 ${식} - ‘식’ 부분에는 EL이 정의한 문법에 따라 값을 표현하는 식이 온다. (액션태그 또는 커스텀태그의 속성 값, 표현식) - JSP의 스크립트 요소(스크립트릿, 표현식, 선언부)를 제외한 나머지 부분에서 사용될 수 있다. EL 에서 사용가능한 연산자 산..

JSP 2022.04.06

[JSP] MVC model2

* MVC 모델 MVC란 Model, View, Controller를 뜻하는 용어로 개발 형태의 일종 입니다. - Model : 데이터베이스와의 관계를 담당합니다. 클라이언트의 요청에서 필요한 자료를 데이터베이스로부터 추출하거나, 수정하여 Controller로 전달 합니다. - View : 사용자한테 보여지는 UI 화면입니다. 주로 .jsp파일로 작성 하며, Controller에서 어떤 View 컴포넌트를 보여줄지 결정 합니다. - Controller : 클라이언트의 요청을 받고, 적절한 Model에 지시를 내리며, Model에서 전달된 데이터를 적절한 View에 전달 합니다. MVC로 분할하면, 추후 유지보수에 유리 MVC Model1 은 View(출력)와 Controller(로직)가 같이 있는 형태 ..

JSP 2022.04.06

[JSP] DAO, DTO

기존 프로그래밍 방식의 문제점 1. 프로그래밍 부분 (비지니스 로직, 백엔드) 부분과 웹 구조(html css js 등의 프론트 엔트, 프레젠테이션로직) 부분 이 하나의 파일 안에 뒤얽혀 있음. 2. insert. delete, list, find 파일을 보면 ’DB커넥션’을 만드는 과정들이 매 페이지 요청 마다 계속 동일하게 반복된다. 매번 커넥션을 발생시키고 해제하는 동일한 코드가 반복 되는 것이 생산성에도 문제가 된다. 3. 조금만 규모가 커지면, 분업 제작하기도 힘들고, 유지관리도 어렵다. ‘프로그래밍’과 ‘웹 구조’를 분리해야할 필요성 대두! 이를 위해 자바빈을 활용한 DAO,DTO 개발기술 소개. Presentation Logic / Business Logic * DAO, DTO 빈(Bean)..

JSP 2022.04.06