강의 정리하기

강의 정리하기/SPRING

DI와 IoC

웹을 위한 스프링 프레임워크 모듈 Java SE 위에는 Java EE 또는 Spring을 얹을 수 있다. Java SE는 가장 대중적인 자바 플랫폼으로 java.lang.*, java.util.* 등과 같이 대부분의 패키지가 포함된 것을 말한다. Java EE는 Java SE 플랫폼을 기반으로 그 위에 탑재되고 JSP, Servlet, JDBC 등 웹 프로그래밍에 필요한 기능을 다수 포함한다. Spring은 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션을 말한다. 앞으로 배울 내용을 간략히 하면 아래와 같다. 느슨한 결합력과 인터페이스 -> DI -> MVC AOP -> 트랜잭션 Servlet Filter -> 인증과 권한 느슨한 결합력과 인터페이스 만약 코드..

강의 정리하기/JSP와 Servlet

Admin 페이지를 위한 Service 클래스 및 Controller

관리자 페이지를 위한 Service 생성하기 1. publicNoticeAll(ids) 게시글 일괄 공개 요청하기 public class NoticeService { public int removeNoticeAll(int[] ids) { return 0; } } 넘겨받은 배열로 삭제하고 몇 개를 삭제했는지 반환한다. 2. removeNoticeAll(ids) 게시글 일괄 삭제 요청하기 public class NoticeService { public int pubNoticeAll(int[] ids) { return 0; } } 3. insertNotice(notice) 공지 등록 요청하기 public class NoticeService { public int insertNotice(Notice notice..

강의 정리하기/JSP와 Servlet

댓글 수 포함하기 및 index 페이지 추가하기

아래의 사진과 같이 게시글 목록에서 댓글 수를 포함하려고 한다. 1. 댓글 수 포함하기 먼저 COMMENT 테이블과 MEMBER 테이블의 구성을 살펴보면 아래와 같다. 댓글 수를 알기 위해서는 NOTICE 테이블만으로 알 수 없어 COMMENT 테이블과 NOTICE 테이블을 JOIN을 해야 한다. SELECT * FROM NOTICE N INNER JOIN "COMMENT" C ON N.ID = C.NOTICE_ID ORDER BY N.REGDATE DESC; INNER JOIN을 할 때는 자식 테이블이 기준이 되어서 자식 테이블이 필요로 하는 부모 테이블의 컬럼을 가져오도록 한다. 여기서 자식 테이블은 COMMENT 테이블이다. 위에서 보았다싶이 COMMENT 테이블에는 3개의 컬럼이 있으므로 이를 기..

강의 정리하기/JSP와 Servlet

페이지 처리하기 및 detail을 Service를 이용하여 구현하기

1. 페이징 처리하기 검색을 적용한 후에 문제가 생긴 페이징 부분을 해결해보도록 하자. 현재 주소창을 보면 list?p=2를 통해서 2page로 넘어간 것을 볼 수 있다. 현재 총 11개의 데이터가 있는데 10개씩 끊으면 1번 게시물이 2page에 보여야하지만 보이지 않는다. 그 이유는 주소창을 보면 f(field)와 q(query) 파라미터가 전달되지 않았기 때문이다. 이는 키는 있지만 값이 전달되지 않은 것인데 서버 쪽에서는 값이 가지 않았기 때문에 null이 아닌 빈 문자열로 받는다. 따라서 아래와 같이 빈 문자열에 대한 처리를 해주도록 한다. String field = "title"; if(field_ != null && !field_.equals("")) { field = field_; } St..

강의 정리하기/JSP와 Servlet

NoticeService 클래스 작성하기

이전글에서 NoticeService 클래스의 메소드에 필요한 SQL문을 작성했었다. https://myblog1128.tistory.com/110 Service 클래스와 메소드 생성하기위한 SQL문 작성 공지 목록 조회 1. getNoticeList() 사용자는 공지사항의 링크를 클릭하는 것과 같이 페이지 요청을 통해 공지를 볼 수 있다. 공지사항의 목록을 default로 정해진 갯수만큼 보여준다. 2. getNoticeList(int pa myblog1128.tistory.com 이제 메소드의 JDBC 코드와 같이 나머지 부분을 작성해보도록 하자. 아래의 코드에서 SQL 부분을 보면 field를 ?로 값을 준다면 'field'의 형식과 같이 문자열로 들어가기 때문에 setXXX() 메소드를 사용하지 않..

강의 정리하기/JSP와 Servlet

Service 클래스와 메소드 생성하기위한 SQL문 작성

공지 목록 조회 1. getNoticeList() 사용자는 공지사항의 링크를 클릭하는 것과 같이 페이지 요청을 통해 공지를 볼 수 있다. 공지사항의 목록을 default로 정해진 갯수만큼 보여준다. 2. getNoticeList(int page) 페이지 요청을 통해 이전 이후의 페이지들도 볼 수 있다. 특정 페이지의 번호를 인자값으로 받아서 보여준다. 3. getNoticeList(String field, String query, int page) 공지를 검색하는 요청을 할 수 있다. 검색할 때 키워드의 분류와 검색 단어뿐만 아니라 검색했을 때 여러 개의 검색이 되었을 떼 페이지 또한 여러 개가 된다. 따라서 검색된 결과물에서 페이지를 클릭할 수 있어야 한다. 4. getNoticeCount() 5. g..

강의 정리하기/JSP와 Servlet

기업형으로 만든다는 것은?

기업형으로 레이어를 나누는 이유 기업형으로 만든다는 것은 업무를 분담해서 프로그램을 만드는 것이라고 할 수 있다. DBMS에 접속해서 쿼리를 만들고, 입출력, 업무 처리 등을 하는 Controller와 View만으로 프로그램을 만들 수 있다. 하지만 업무가 커진다면 Controller(Servlet)에서 업무 서비스를 분리하는 것이 더 낫다. 업무 서비스를 분리함으로써 경험이 더 많은 사람이 관리하게 되면서 실수를 줄일 수 있고 유지보수도 더 편리해진다. 여기서 또 업무 서비스에서 데이터 서비스를 책임지는 DAO(데이터 서비스)를 분리해서 만들 수 있다. DAO를 만들게 되면 업무 서비스에서는 SQL 쿼리문 없이 JAVA만을 사용하고 DBMS에는 관여하지 않게 된다. 이렇게 데이터를 조작하는 역할을 DA..

강의 정리하기/JSP와 Servlet

JSTL의 function 이용하기

JSTL의 함수 사용하기 JSTL에서 funtion을 이용하기 위해서 아래의 taglib를 추가해주도록 한다. 이는 나 와 같이 사용한 것과 다르게 아래와 같이 ${fn : ...}을 이용해서 바로 사용할 수 있다. ${fn:toUpperCase(fileName)} toUpperCase는 말 그대로 대문자로 변환해주는 것으로 아래와 같이 파일명이 대문자로 변환된다. 이를 만약 데이터베이스에서 일일히 파일명을 바꾼다면 시간도 많이 걸리고 효율이 떨어져 불편할 것이다. 이 불편한 점을 개선할 수 있는 방법이 JSTL의 function이다. 대문자로 변환해주는 것뿐만 아니라 또 다른 다양한 기능들이 있다. 그 중에 하나인 endsWith을 설명해보고자 한다. ${fn:toUpperCase(fileName)} ..

아민_
'강의 정리하기' 카테고리의 글 목록