모델2의 진행과정

 과정1

(요청)

 웹브라우저가 전송한 HTTP 요청을 받는다. 서블릿의 doGet() 메서드나 doPost()메서드가 호출된다.

 과정2

(요구기능분석)

 웹브라우저가 어떤 기능을 요청했는지 분석한다. 예를 들어 , 게시판 목록을 요청했는지, 글쓰기를 요청했는지 알아낸다. 

 과정3

(요청 비지니스 로직을 

처리하는 모델사용)

 모델을 사용하여 요청한 기능을 수행한다.

 과정4
(결과를 request나 

session에 저장)

 모델로부터 전달받은 결과물을 알맞게 가공한 후 request의 setAttribute()메서드를 사용하여 결과값을 속서에 저장한다.  이렇게 저장된 결과값은 뷰인 JSP에서 사용된다.  (session 서부부하 때문에 많이는안씀)

 과정5
(알맞은 뷰 선택 후, 뷰로 포워딩

(또는 리다이렉트))

 웹브라우저에 보여줄 JSP를 선택한 후, 해당 JSP로 포워딩 한다. 경우에 따라서 리다이렉트 하기도 한다.



M 때고 VC : View와 Controller 연결  Model를 생략하고 하는 연습이기 때문에  Controller에서 작업처리를해준다. 


★ Servlet 사용시 중요한점 !!

1.extends Httpservlet

2.web.xml Mapping

3.모델2는 사용자에게 요청을받는 Servlet이 시작이다.





mvcMain.war




SimpleController
package kame.chap24;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SimpleController extends HttpServlet{
    
    //1단계의 요청을 받음 
    //get 이건 post 이건  요청 다받아~ processRequest로 넘겨준다.
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        processRequest(request, response);
    }
    
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        processRequest(request, response);
    }
    
    private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        //2단계 , 요청파악
        //request 객체로부터 사용자의 요청을 파악하는 코드
        //get 이건 post 이건  요청은 이리로 오는구나
        //요기서는 type으로 값을 요청값을 받아왔구려
        String type = request.getParameter("type");
        
        //3단계, 요청한 기능을 수행한다.
        //사용자에 요청에 따라 알맞은 코드
        //가져온 값에 맞는 값을  출력해줄 코드~
        Object resultObject=null;
        if(type==null || type.equals("greeting")){
            resultObject = "안녕하세요.";            
        }else if(type.equals("date")){
            resultObject = new java.util.Date();
        }else{
            resultObject = "invalid Type";
        }
        
        //4단계, request에 처리 결과를 저장
        //결과값을 request에 담겨서 슝~
        request.setAttribute("result", resultObject);
        
        //5단계, RequestDispatcher를 사용하여 알맞은 뷰로 포워딩
        //어디로? jsp로 슝~
        RequestDispatcher dispatcher=request.getRequestDispatcher("/simpleView.jsp");
        dispatcher.forward(request, response);
        }
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>mvcMain</display-name>

    <!-- Mapping -->
    <!-- SimpleController start -->
    <servlet>
    <servlet-name>SimpleController</servlet-name>
    <servlet-class>kame.chap24.SimpleController</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>SimpleController</servlet-name>
    <url-pattern>/simple</url-pattern>
    </servlet-mapping>    
    <!-- /Mapping -->

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>
simpleView.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>뷰</title>
</head>
<body>
결과 : <%=request.getAttribute("result")%><br/>
결과 (EL:표현언어) : ${result}
</body>
</html>






+ Recent posts