상세 컨텐츠

본문 제목

컨트롤러 서블릿 패턴

JSP

by kwanghyup 2020. 7. 5. 19:01

본문

package mvc.simple;

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 = "/simple")
public class SimpleController extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        proceedRequest(request,response);
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        proceedRequest(request,response);
    }

    private void proceedRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // 2단계 요청 파악
        String type = request.getParameter("type");

        // 3단계 요청한 기능 수행 : 요청한 내용에 따라 알맞은 모델 선택
        Object resultObject = null;
        if(type==null || type.equals("greeting")){
            resultObject = "Hello!";
        } else {
            resultObject = "Invalid Type";
        }

        // 4단계 request 또는 session에 처리 결과 저장
        request.setAttribute("result",resultObject);

        // 5단계 RequestDispatcher를 사용하여 알맞은 뷰로 포워딩
        RequestDispatcher dispatcher = request.getRequestDispatcher("/view/simpleView.jsp");
        dispatcher.forward(request,response);

    }
}

 

/view/simpleView.jsp

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<head>
    <title>simpleView</title>
</head>
<body>
    컨틀롤러가 전달한 값 : ${ result }
</body>
</html>

 

관련글 더보기

댓글 영역