관리자 페이지를 위한 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) {
return 0;
}
}
4. deleteNotice(id)
관리자 권한으로 목록에서 자세한 페이지의 공지 삭제 요청하기
public class NoticeService {
public int deleteNotice(int id) {
return 0;
}
}
5. updateNotice(notice)
공지 수정 요청하기
public class NoticeService {
public int updateNotice(Notice notice) {
return 0;
}
}
6. getNoticeNewestList()
index페이지에서 공지사항 페이지 요청하기
public class NoticeService {
// Notice를 반환하거나 NoticeView를 반환할 수 있으나
// 댓글 수까지 알 필요가 없으므로 Notice를 반환
public List<Notice> getNoticeNewestList(){
return null;
}
}
Notice와 NoticeView를 반환할 수 있다.
하지만 댓글 수까지는 알 필요가 없으므로 NoticeView가 아닌 Notice를 반환한다.
관리자 페이지를 위한 Controlloer 생성하기
IndexController.java
package com.web.controller.admin;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/admin/index")
public class IndexController extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/view/admin/index.jsp").forward(req, resp);
}
}
관리자 페이지에서 list 페이지 추가하기
/WEB-INF/view/admin/notice 폴더 아래 list 파일을 생성한다.
코드는 /WEB-INF/view/notice 폴더 아래 list 파일을 참고하도록 한다.
이 list를 동작시킬 Controller 또한 com.web.controller.notice 패키지의 ListController를 참고하자.
@WebServlet("/admin/board/notice/list")
public class ListController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 생략
}
}
이때 @WebServlet을 이용해서 매핑시키면 아래와 같은 404 에러 페이지가 뜬다.
이는 프로젝트 안에 같은 이름의 Controller가 있기 때문에 발생하는 에러이다.
프로젝트의 폴더 구조를 살펴보면 서로 다른 패키지에 ListController라는 이름의 클래스가 2개가
존재하는 것을 확인할 수 있다.
이와 같은 문제를 해결하기 위해서는 @WebServlet의 name과 urlPattern 속성을 이용하면 된다
name 속성으로 서블릿의 이름을 설정하고, urlPatterns 속성으로 서블릿의 URL 목록을 설정한다.
@WebServlet(name="listController", urlPatterns="/admin/board/notice/list")
public class ListController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 생략
}
}
우리가 원하는 페이지가 뜨는 것을 확인할 수 있다.
'강의 정리하기 > JSP와 Servlet' 카테고리의 다른 글
댓글 수 포함하기 및 index 페이지 추가하기 (0) | 2023.08.17 |
---|---|
페이지 처리하기 및 detail을 Service를 이용하여 구현하기 (0) | 2023.08.15 |
NoticeService 클래스 작성하기 (0) | 2023.08.14 |
Service 클래스와 메소드 생성하기위한 SQL문 작성 (0) | 2023.08.03 |
기업형으로 만든다는 것은? (0) | 2023.08.02 |