JSP 22

[JSP] Comment

* 게시판 댓글 기능 (JSON + AJAX 사용) JSON resopnse + AJAX 를 사용한 댓글 * 구현할 댓글 기능 - 댓글 목록 - 댓글 작성 - 댓글 삭제 : 삭제는 한번 confirm 하고 진행 * ERD, DDL 작성 * 라이브러리 준비 * select 쿼리문 준비 # 특정글 의 (댓글 + 사용자) 정보 필요한 쿼리문 작성 D.java // ★ 댓글 // 댓글과 작성자 SELECT public static final String SQL_COMMENT_SELECT = "SELECT c.uid \"uid\", c.content \"content\", c.regdate \"regdate\",\r\n" + "u.uid \"user_uid\", u.username \"user_username\"..

JSP 2022.04.13

[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