모델2의 진행과정
과정1 (요청) |
웹브라우저가 전송한 HTTP 요청을 받는다. 서블릿의 doGet() 메서드나 doPost()메서드가 호출된다. |
과정2 (요구기능분석) |
웹브라우저가 어떤 기능을 요청했는지 분석한다. 예를 들어 , 게시판 목록을 요청했는지, 글쓰기를 요청했는지 알아낸다. |
과정3 (요청 비지니스 로직을 처리하는 모델사용) |
모델을 사용하여 요청한 기능을 수행한다. |
과정4 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이 시작이다.
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>
'JSP > 기본(Oracle)' 카테고리의 다른 글
모델2 : MVC : Model View Controller - DB연동 (0) | 2012.06.20 |
---|---|
모델2 : MVC : Model View Controlle r- DB연동없이 (0) | 2012.06.20 |
EL(표현언어), JSTL, 국제화 태그 - 예제 (0) | 2012.06.20 |
EL(표현언어), JSTL, 국제화 태그 (0) | 2012.06.20 |
파일업로드 라이브러리: cos , 자카르타 (0) | 2012.06.20 |