KIC 백엔드 수업

5월 4일 (목) - [ MVC - Model2 URL 방식 예제, 게시판 ]

Crecok 2023. 5. 4. 16:37
반응형

◆ URL 방식

 

1. URLEx01/view1.do

2. URLEx01/view2.do

 

- 가상 디렉토리 board 추가

3. URLEx01/board/view3.do

4. URLEx01/board/view4.do

 

 

 URL 방식 예제

 

1. 다이나믹 프로젝트 생성 : URLEx01

2. 패키지 생성 : src/main/java - controller

3. 패키지 안에 서블릿 생성 : ControllerEx01

   - 생성시 URL Mappings를 아래처럼 지정한다. ( 생성자 체크해제, doGet / doPost 체크 )

4. 폴더 생성 : WEB_INF - views

5. 폴더 안에 jsp 파일 생성 : views - view1.jsp / view2.jsp / view3.jsp / view4.jsp

 

▶ view1~4.jsp ( jsp 파일 4개 생성 후, 안의 내용만 Hello view1~4 로 수정한다. )

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Hello view1.jsp
</body>
</html>

 

 

▶ ControllerEx01

package controller;

import java.io.IOException;
import java.io.UnsupportedEncodingException;

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;

@WebServlet("*.do")
public class ControllerEx01 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doProcess(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doProcess(request, response);
	}
	
	protected void doProcess(HttpServletRequest request, HttpServletResponse response) {
		
		try {
			
			request.setCharacterEncoding( "utf-8" );
			
			// System.out.println( request.getRequestURI() );
			// System.out.println( request.getContextPath() );
			
			String path = request.getRequestURI().replaceAll( request.getContextPath(), "" );
			// System.out.println( path );
			
			String url = "/WEB-INF/views/error.jsp";
			
			if( path.equals("/") || path.equals( "/*.do") || path.equals( "/view1.do") ) {
				
				url = "/WEB-INF/views/view1.jsp";
				
			} else if( path.equals( "/view2.do") ) {
				
				url = "/WEB-INF/views/view2.jsp";
			
			// 가상 디렉토리 - board
			} else if( path.equals( "/board/view3.do") ) {
				
				url = "/WEB-INF/views/view3.jsp";
				
			} else if( path.equals( "/board/view4.do") ) {
				
				url = "/WEB-INF/views/view4.jsp";
				
			}
			
			RequestDispatcher dispatcher = request.getRequestDispatcher( url );
			dispatcher.forward( request, response );
			
		} catch (UnsupportedEncodingException e) {
			System.out.println( "[에러] " + e.getMessage() );
		} catch (ServletException e) {
			System.out.println( "[에러] " + e.getMessage() );
		} catch (IOException e) {
			System.out.println( "[에러] " + e.getMessage() );
		}
		
	}

}

 

 

▶ 실행 결과

가상 디렉토리 board 적용

 

 


 

◆ 우편번호 검색기 만들기 ( MVC - Model2 : URL 방식 )

 

* 완성자료 : F / 수업자료 / 우편번호 검색기 / (MVC) Model2 - URL 방식

 


◆ 게시판 만들기 ( MVC - Model2 : URL 방식 )

 

* 완성자료 : F / 수업자료 / 게시판 / simple 게시판 - Model2 URL

 


 

반응형