쌍용교육(JAVA)/MVC

쌍용교육 -JSP수업 54일차 MVC

구 승 2024. 5. 7. 17:41

web.xml 파일에 주소를 명시한다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>ch03_JSP</display-name>
  <!-- 응답 상태 코드별 에러 페이지 지정 --> 
  <error-page>
  	<error-code>404</error-code>
  	<location>/ch06_errorPage/error/error404.jsp</location>
  </error-page>
  <error-page>
  	<error-code>500</error-code>
  	<location>/ch06_errorPage/error/error500.jsp</location>
  </error-page>
  <!-- 에러 타입별 에러 페이지 지정 -->
  <error-page>
  	<exception-type>java.lang.NullPointerException</exception-type>
  	<location>/ch06_errorPage/error/errorNullPointer.jsp</location>
  </error-page>
  <!-- 세션 유지 시간 지정(분단위로 지정) -->
  <session-config>
  	<session-timeout>50</session-timeout>
  </session-config>
  <!-- DispatcherServlet 설정 -->
  <servlet>
  	<servlet-name>DispatcherServlet</servlet-name>
  	<servlet-class>kr.web.mvc.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>DispatcherServlet</servlet-name>
  	<url-pattern>/dispatcher</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
</web-app>

Views폴더 =>

   messageView.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MVC패턴 연습</title>
</head>
<body>
MVC패턴 연습~~
</body>
</html>

kr.web.mvc =>

   DispatcherServlet.java(서블릿)

package kr.web.mvc;

import java.io.IOException;
import java.io.PrintWriter;

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 DispatcherServlet extends HttpServlet{
	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException,IOException{
		requestPro(request,response);
	}
	@Override
	public void doPost(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException{
		requestPro(request,response);

	}
	public void requestPro(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException{
		//forward 방식으로 view(jsp) 호출
		RequestDispatcher dispatcher = request.getRequestDispatcher("/views/messageView.jsp");
		
		dispatcher.forward(request,response);
		
	}

}

 

forward방식으로 dispatcherServlet을 실행하면 messageView.jsp가 호출

 

내용 추가

Views폴더 =>

   messageView.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MVC패턴 연습</title>
</head>
<body>
결과 : <%=request.getAttribute("result") %><br>
결과 : ${result}
</body>
</html>

kr.web.mvc =>

   DispatcherServlet.java(서블릿)

package kr.web.mvc;

import java.io.IOException;
import java.io.PrintWriter;

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 DispatcherServlet extends HttpServlet{
	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException,IOException{
		requestPro(request,response);
	}
	@Override
	public void doPost(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException{
		requestPro(request,response);

	}
	public void requestPro(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException{
		
		String message = request.getParameter("message");
		
		String result = null;
		if(message == null || message.equals("")) {
			result = "메시지가 없음!!";
		}else if(message.equals("name")) {
			result="홍길동";
		}else if(message.equals("base")) {
			result="기본 호출";
		}else {
			result = "잘못된 호출";
		}
							//속성명		속성값
		request.setAttribute("result", result);
		
		//forward 방식으로 view(jsp) 호출
		RequestDispatcher dispatcher = request.getRequestDispatcher("/views/messageView.jsp");
		
		dispatcher.forward(request,response);
		
	}

}

 

바로 실행만 한 상태
직접 명시하면 값이 바뀐다.
직접 명시하면 값이 바뀐다.
직접 명시하면 값이 바뀐다.