o   실습 1) JSP CRUD 프로젝트 제작

§  Database 준비

§  https://db4free.net/ 가입 (이메일 인증):

https://db4free.net/ 에서 가입 절차를 마치면 아래와 같이 인증 메일을 통해 가입을 완료시킵니다.

 

§  phpMyAdmin 로그인을 하여 간단한 실습을 해봅니다.

§  Board 테이블 생성 및 sample 데이터 추가

§  create table 쿼리 실행

§  insert into 쿼리 사용하여 레코드 데이터 추가 (2개 이상)

 

결과:

§  select, update, delete 쿼리 연습

 

결과:

 

결과: seq=0 이 없어서 DELETE 쿼리에도 아무런 변화가 없었다.

 

§  CRUD Project 생성

§  새 프로젝트 생성 (Dynamic Web project)

Project Explorer-> 우클릭-> new -> Dynamic Web Project 생성

maven project로 변환-> 프로젝트명 우클릭-> configure-> convert to maven project

§  Maven project로 변환 후, library 추가

아래 사진과 같이 pom.xml 파일로 들어가서 build 태그 하단에 <dependencies> 태그 삽입 후 안에, 아래의 링크를 방문하여 maven project dependencies에 필요한 mysql-connector 라이브러리와 JSTL 라이브럴리를 추가해줍니다.

https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.21

https://mvnrepository.com/artifact/jstl/jstl/1.2

§  관련 클래스 제작 및 원본 소스 복사

§  JDBCUtil class

§  패키지명 : com.crud.common

§  소스 수정

§  Database 연결정보 수정 (본인의 db4free 정보 기입)

§  BoardVO class

§  패키지명 : com.crud.bean

§  주의 : Board 테이블 구조와 동일한 변수이름으로 getters & setters 제작

§  BoardDAO class

§  패키지명 : com.crud.dao

아래 URL링크로 구글 공유 드라이브 폴더로 접속하여 필요한 모든 코드를 복붙하면 된다.

https://drive.google.com/drive/folders/1vEKel6dvj1ILyVP69xRZVZCRp7NotGd0

§  WebContent 제작

§  원본 JSP 파일 다운로드하여 추가

src 폴더에 있는 내용이 DB연결 및 백엔드 작업이었다면, jsp파일은 프런트엔드 작업이라고 생각하면 되겠다. webcontent 폴더 및에 아래 사진과 같이 코드를 추가한다.

o   실습 2) 사이트 실행 테스트

§  index.jsp 실행하여 게시판 목록 표시 확인

§  10개 이상 샘플 게시물 등록

§  게시물 수정, 삭제기능 확인

 

§  실습1), 실습2) 과정 정리. 필요한 화면 캡쳐

§  프로젝트 소스파일 분석

§  각 파일의 역할정리

§  7개의 JSP 파일에 대한 분석

§  어떤 일을 하고 있는가?

·   addpost.jsp: jsp 파일은 jsp action tags를 사용하여 자바빈 객체를 생성하여 새로운 포스트를 작성하면 추가 완료 메세지를 띄우거나, 꽉 찼을 경우에는 에러 메시지를 띄웁니다.

·   addpostform.jsp: 새로운 포스틀 작성하기 위해 html에서 보여질 내용입니다. 해당 텍스트 박스에서 새로운 값을 입력할 수 있습니다.

·   deletepost.jsp: 삭제하고자 하는 란이 선택되면, 해당 id 가 넘겨져서 그 id 값을 가지고 새로운 BoardVO객체를 생성하여 이 객체로 BoardDAO table에서 값을 지울 수 있게 되는 것입니다.

·   editform.jsp: deletePost.jsp 와 비슷하게 선택된 항목에 대한 id가 넘겨져서 해당 항목을 편집한다.

·   editpost.jsp: editform.jsp에서 수정된 사항을 editpost.jsp를 통해 새로운 내용을 업데이트하고 (boardDAO.updateBoard(u);)  HTTP redirection을 하여 새로운 페이지를 로드한다. (response.sendRedirect("posts.jsp");

·   index.jsp: index.jsp가 시작 페이지이다. 이 페이지는 posts.jsp 파일의 도움으로 페이지 html을 제작한다.

·   posts.jsp: html의 모습을 html태그와 internal css 방식으로 꾸며주고 Edit, delete, add new post 부분에서는 EL 언어를 사용하여 jsp에서 자바빈 seq번호를 ${u.getSeq()}을 사용하여 작업을 처리한다.

§  사용된 JSP 기능에 관한 설명을 찾아 정리

§  각 소스에 다음 기능이 사용된 부분들을 찾아 주석문 추가(jsp action tag, jsp directives, tag library, el(expression language) 사용된 부분) - 주석문을 포함한 소스를 직접 보고서에 Text로 복붙하여 추가

// jsp directives (page directives)

// 전체 페이지는 자바 언어를 사용하고 html 텍스트만을 사용하고(이미지와 같은 binary 파일은 )

// 제외, UTF-8 사용하여 엔코딩 방식을 페이지 전체에 적용함)

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ page import="com.crud.dao.BoardDAO"%>

 

<% request.setCharacterEncoding("utf-8"); %>

 

//jsp action tags

<jsp:useBean id="u" class="com.crud.bean.BoardVO" />

<jsp:setProperty property="*" name="u"/>

 

<%

                    BoardDAO boardDAO = new BoardDAO();

                    int i = boardDAO.insertBoard(u);

                    String msg = "데이터 추가 성공 !";

                    if(i == 0) msg = "[에러] 데이터 삭제 ";

%>

 

<script>

                    alert('<%=msg%>');

                    location.href='posts.jsp';

</script>

 

 

'웹캠프2021' 카테고리의 다른 글

웹캠프: Spring1 (1/25)  (0) 2021.01.27
웹캠프: JSP5 1/22  (0) 2021.01.24
웹캠프: JSP3 1/20  (0) 2021.01.23
웹캠프 : JSP2 1/19  (0) 2021.01.22
JSP 정리내용 (9 Implicit Objects 까지)  (0) 2021.01.22

+ Recent posts