커맨드 핸들러 : CommandHandler
package mvc.command;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface CommandHandler {
public String process(HttpServletRequest request, HttpServletResponse response) throws ServletException;
}
커맨들 핸들러 구현체 : BoardListHandler
package mvc.command;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
public class BoardListHandler implements CommandHandler {
@Override
public String process(HttpServletRequest request, HttpServletResponse response) throws ServletException {
System.out.println("boardList");
// 글 목록 읽기 요청
// 뷰 페이지에서 사용할 정보 저장, (Dao객체 사용)
String value = "어떤 값";
request.setAttribute("value",value);
// 뷰페이지 리턴
return "/view/viewBoardList.jsp";
}
}
커맨드 핸들러 구현체 : NullHandler
package mvc.command;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class NullHandler implements CommandHandler {
@Override
public String process(HttpServletRequest request, HttpServletResponse response) throws ServletException {
return "/view/viewNullPage.jsp";
}
}
서블릿 컨트롤러 : CommandController
package mvc.command;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = "/board")
public class CommandController extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
proceedRequest(req,resp);
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
proceedRequest(req,resp);
}
private void proceedRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String command = request.getParameter("command");
System.out.println("cmd : "+command);
CommandHandler handler = null;
if(command == null){
handler = new NullHandler();
} else if (command.equals("BoardList")){
handler = new BoardListHandler();
}
String viewPage = handler.process(request,response);
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPage);
dispatcher.forward(request,response);
}
}
JSP페이지
/view/viewBoardList.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
글 목록 읽기 <br>
${ value }
</body>
</html>
/view/viewNullPage.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
잘못된 요청
</body>
</html>
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>커맨드 패턴</title>
</head>
<body>
<a href="/board">null 페이지 </a> <br>
<a href="/board?command=BoardList">글 목록</a> <br>
</body>
</html>
서블릿 초기화 파라미터 web.xml <init-param> 애노테이션 @WebServlet @WebInitParam (0) | 2020.07.06 |
---|---|
서블릿 컨트롤러, 커맨드 패턴, 설정 파일 [.properties] 사용 (0) | 2020.07.05 |
컨트롤러 서블릿 패턴 (0) | 2020.07.05 |
커넥션 풀 connection pool : 초기화파라미터 지정 (0) | 2020.07.05 |
커넥션 풀 connection pool (0) | 2020.07.05 |
댓글 영역