Spring boot

[Spring Boot] Bank App (9) - MainController, mainPage.jsp ๊ตฌํ˜„

๋ฏธ๋กœ910 2024. 8. 14. 14:20
๐Ÿ’ก์ž‘์—… ์ˆœ์„œ
1. mainController.java ํŒŒ์ผ ์ƒ์„ฑ
2. ๊ฐ„๋‹จํ•œ CSS ์„ค์ •ํ•˜๊ธฐ
3. ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ๋กœ ๋ณ€๊ฒฝ ํ•˜๊ธฐ
4. ํ•˜๋‹จ์— ๋ถ™๋Š” ํ‘ธํ„ฐ ์„ค์ •ํ•˜๊ธฐ (๊ฐ€์šด๋ฐ ์ปจํ…์ธ ๊ฐ€ ์ž‘์œผ๋ฉด ํ‘ธํ„ฐ๊ฐ€ ์ค‘๊ฐ„์œผ๋กœ ์˜ฌ๋ผ ์˜ด)

๋ฒ„๊ทธ ํ™•์ธ

	// TODO - tools xml ํŒŒ์ผ error check 
	providedCompile 'javax.servlet:javax.servlet-api:3.1.0'

 

1. mainController.java ํŒŒ์ผ ์ƒ์„ฑ
package com.tenco.bank.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller  // IoC ๋Œ€์ƒ(์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ๊ด€๋ฆฌ๊ฐ€ ๋œ๋‹ค.) --> ์ œ์–ด์˜ ์—ญ์ „  
public class MainController {
	
	// REST API  ๊ธฐ๋ฐ˜์œผ๋กœ ์ฃผ์†Œ์„ค๊ณ„ ๊ฐ€๋Šฅ 
	
	// ์ฃผ์†Œ์„ค๊ณ„ 
	// http:localhost:8080/main-page
	@GetMapping({"/main-page", "/index"})
	public String mainPage() {
		System.out.println("mainPage() ํ˜ธ์ถœ ํ™•์ธ");
		// [JSP ํŒŒ์ผ ์ฐพ๊ธฐ (yml ์„ค์ •) ] - ๋ทฐ ๋ฆฌ์กธ๋ฒ„ 
		// prefix: /WEB-INF/view
		//         /main  
		// suffix: .js 
		return "/main";
	}	
}

์š”์ฒญ ํ›„ ๊ฒฐ๊ณผ ํ™”๋ฉด ํ™•์ธ

์ด๋ฏธ์ง€ ํ™œ์šฉ - ๋งํฌ ์ฒ˜๋ฆฌ

https://picsum.photos/id/1/350

 

2. ๊ฐ„๋‹จํ•œ CSS ์„ค์ •ํ•˜๊ธฐ
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
  <title>myBank</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
  <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
  <style>
  	.m--banner-img {
  		background-image: url(https://picsum.photos/600);
  		background-size: cover;
  		background-position: center;
  		width: 100%;
  	}
  	.m--profile {
  		background-image: url(https://picsum.photos/id/1/350);
  		width: 100%;
  		height: 200px;
  		background-size: cover;
  		background-position: center;
  	}
  </style>
</head>
<body>

<div class="jumbotron text-center m--banner-img" style="margin-bottom:0">
  <h1>My Bank</h1>
  <p>๋งˆ์ด๋ฐ”์ดํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ์Šคํ”„๋ง ๋ถ€ํŠธ ์•ฑ ๋งŒ๋“ค์–ด๋ณด๊ธฐ</p> 
</div>

<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="collapsibleNavbar">
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>    
    </ul>
  </div>  
</nav>

<div class="container" style="margin-top:30px">
  <div class="row">
    <div class="col-sm-4">
      <h2>About Me</h2>
      <h5>Photo of me:</h5>
      <div class="m--profile"></div>
      <p>์ฝ”๋ฆฐ์ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ฑ…ํฌ ์•ฑ</p>
      <h3>Some Links</h3>
      <p>Lorem ipsum dolor sit ame.</p>
      <ul class="nav nav-pills flex-column">
        <li class="nav-item">
          <a class="nav-link active" href="#">Active</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Link</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Link</a>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled" href="#">Disabled</a>
        </li>
      </ul>
      <hr class="d-sm-none">
    </div>
    <!-- end of header.jsp  -->

 

3. ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ๋กœ ๋ณ€๊ฒฝ ํ•˜๊ธฐ
@charset "UTF-8";

.m--banner-img {
	background-image: url(https://picsum.photos/600);
	background-size: cover;
	background-position: center;
	width: 100%;
}

.m--profile {
	background-image: url(https://picsum.photos/id/1/350);
	width: 100%;
	height: 200px;
	background-size: cover;
	background-position: center;
}

 

header.jsp - ์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ ์—ฐ๊ฒฐ
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
  <title>myBank</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="css/common.css">

  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
  <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
  	
</head>
<body>

<div class="jumbotron text-center m--banner-img" style="margin-bottom:0">
  <h1>My Bank</h1>
  <p>๋งˆ์ด๋ฐ”์ดํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ์Šคํ”„๋ง ๋ถ€ํŠธ ์•ฑ ๋งŒ๋“ค์–ด๋ณด๊ธฐ</p> 
</div>

<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="collapsibleNavbar">
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>    
    </ul>
  </div>  
</nav>

<div class="container" style="margin-top:30px">
  <div class="row">
    <div class="col-sm-4">
      <h2>About Me</h2>
      <h5>Photo of me:</h5>
      <div class="m--profile"></div>
      <p>์ฝ”๋ฆฐ์ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ฑ…ํฌ ์•ฑ</p>
      <h3>Some Links</h3>
      <p>Lorem ipsum dolor sit ame.</p>
      <ul class="nav nav-pills flex-column">
        <li class="nav-item">
          <a class="nav-link active" href="#">Active</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Link</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Link</a>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled" href="#">Disabled</a>
        </li>
      </ul>
      <hr class="d-sm-none">
    </div>
    <!-- end of header.jsp  -->
๐Ÿ’ก ํ•˜๋‹จ์— ๊ณ ์ •๋˜๋Š” ํ‘ธํ„ฐ(Footer)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด CSS์˜ Flexbox ๋ ˆ์ด์•„์›ƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” HTML ๊ตฌ์กฐ์— ๋ช‡ ๊ฐ€์ง€ ์กฐ์ •์„ ํ•ด์ฃผ๊ณ , ์ ์ ˆํ•œ CSS ์Šคํƒ€์ผ์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‹จ์— ๋ถ™๋Š” ํ‘ธํ„ฐ ์„ค์ •ํ•˜๊ธฐ
index.html ํŒŒ์ผ์— ์—ฐ์Šต
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap 4 Website Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
	href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
<script
	src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
<script
	src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script
	src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
<style>

body{
	height: 100vh;
	margin: 0;
}
.m--flex-container {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.m--container  {
	flex: 1;
}
</style>
</head>
<body>
	<div class="m--flex-container">
		<div class="m--container">
			<div class="jumbotron text-center" style="margin-bottom: 0">
				<h1>My First Bootstrap 4 Page</h1>
				<p>Resize this responsive page to see the effect!</p>
			</div>

			<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
				<a class="navbar-brand" href="#">Navbar</a>
				<button class="navbar-toggler" type="button" data-toggle="collapse"
					data-target="#collapsibleNavbar">
					<span class="navbar-toggler-icon"></span>
				</button>
				<div class="collapse navbar-collapse" id="collapsibleNavbar">
					<ul class="navbar-nav">
						<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
						<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
						<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
					</ul>
				</div>
			</nav>

			<div class="container" style="margin-top: 30px">
				<div class="row">
					<div class="col-sm-4"></div>
					<div class="col-sm-8">
						<h2>TITLE HEADING</h2>
						
					</div>
				</div>
			</div>
		</div>
		<div class="jumbotron text-center" style="margin-bottom: 0">
			<p>Footer</p>
		</div>
	</div>
</body>
</html>

 

์‹ค์ œ๋กœ ์‚ฌ์šฉํ•  header.jsp, footer.jsp, common.css ํŒŒ์ผ ์ˆ˜์ •
@charset "UTF-8";

body{
	height: 100vh;
	margin: 0;
}
.m--flex-container {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.m--container  {
	flex: 1;
}

.m--banner-img {
	background-image: url(https://picsum.photos/600);
	background-size: cover;
	background-position: center;
	width: 100%;
}

.m--profile {
	background-image: url(https://picsum.photos/id/1/350);
	width: 100%;
	height: 200px;
	background-size: cover;
	background-position: center;
}
header.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<title>myBank</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/common.css">

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
</head>

<body>
	<div class="m--flex-container">
		<div class="m--container">
			<div class="jumbotron text-center m--banner-img" style="margin-bottom: 0">
				<h1>My Bank</h1>
				<p>๋งˆ์ด๋ฐ”์ดํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ์Šคํ”„๋ง ๋ถ€ํŠธ ์•ฑ ๋งŒ๋“ค์–ด๋ณด๊ธฐ</p>
			</div>
			<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
				<a class="navbar-brand" href="#">Navbar</a>
				<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
					<span class="navbar-toggler-icon"></span>
				</button>
				<div class="collapse navbar-collapse" id="collapsibleNavbar">
					<ul class="navbar-nav">
						<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
						<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
						<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
					</ul>
				</div>
			</nav>

			<div class="container" style="margin-top: 30px">
				<div class="row">
					<div class="col-sm-4">
						<h2>About Me</h2>
						<h5>Photo of me:</h5>
						<div class="m--profile"></div>
						<p>์ฝ”๋ฆฐ์ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ฑ…ํฌ ์•ฑ</p>
						<h3>Some Links</h3>
						<p>Lorem ipsum dolor sit ame.</p>
						<ul class="nav nav-pills flex-column">
							<li class="nav-item"><a class="nav-link active" href="#">Active</a></li>
							<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
							<li class="nav-item"><a class="nav-link" href="#">Link</a></li>
							<li class="nav-item"><a class="nav-link disabled" href="#">Disabled</a></li>
						</ul>
						<hr class="d-sm-none">
					</div>
					<!-- end of header.jsp  -->
footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>


<!--  start of footer.jsp  -->
<div class="jumbotron text-center" style="margin-bottom: 0">
	<p>Footer</p>
</div>

</div>
</div>

</body>
</html>
<!--  end of footer.jsp  -->

 

ํ”Œ๋กœ์šฐ ์ฐจํŠธ๋กœ ์•Œ์•„ ๋ณด๋Š” ๊ฐ„๋‹จํ•œ ๋™์ž‘ ์›๋ฆฌ

์Šคํ”„๋ง ๋ถ€ํŠธ ๊ธฐ๋ฐ˜์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฃผ์š” ๋‹จ๊ณ„์˜ ํ”Œ๋กœ์šฐ ์ฐจํŠธ( ๊ธฐ๋ณธ์ ์ธ ์›น ์š”์ฒญ ๋ฐ ์‘๋‹ต ํ”„๋กœ์„ธ์Šค)

๐Ÿ’ก ์•„ํŒŒ์น˜์™€ ํ†ฐ์บฃ

 

1. ์ •์  ํŒŒ์ผ ์š”์ฒญ์‹œ ๊ฐ„๋‹จํ•œ ์‹คํ–‰ ํ๋ฆ„ (์˜ˆ: CSS, JS, HTML ์ด๋ฏธ์ง€ ํŒŒ์ผ) - URL ํ˜ธ์ถœ

  1. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ html, css, js, ์ด๋ฏธ์ง€ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ •์  ํŒŒ์ผ์„ ์š”์ฒญํ•˜๋ฉด HTTP ์š”์ฒญ์ด ์Šคํ”„๋ง ๋ถ€ํŠธ ๋‚ด์žฅ ์›น ์„œ๋ฒ„๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
  2. ์Šคํ”„๋ง ๋ถ€ํŠธ ๋‚ด์žฅ ์›น ์„œ๋ฒ„๋Š” ํ•ด๋‹น ์ •์  ํŒŒ์ผ์„ ์ฐพ๊ณ , ์š”์ฒญ์— ๋”ฐ๋ฅธ ์ •์  ํŒŒ์ผ์„ ํด๋ผ์ด์–ธํŠธ์ธ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์ง์ ‘ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

 

2. ๋™์  ํŒŒ์ผ(JSP, JSON …) ์š”์ฒญ์‹œ ๊ฐ„๋‹จํ•œ ์‹คํ–‰ ํ๋ฆ„ (์˜ˆ: JSP, json) - ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ URI ํ˜ธ์ถœ

  1. ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ HTTP ์š”์ฒญ(์˜ˆ: ์›น ํŽ˜์ด์ง€ ๋กœ๋“œ)์„ ์ƒ์„ฑํ•˜๊ณ , ์ด ์š”์ฒญ์€ ์›น ์„œ๋ฒ„๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
  2. ์›น ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ WAS(์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„)๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. WAS๋Š” ๋™์  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ(์˜ˆ: Tomcat)๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์ปจํ…Œ์ด๋„ˆ๋Š” ์Šคํ”„๋ง ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  4. ์Šคํ”„๋ง ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.
  5. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์™„๋ฃŒ๋˜๋ฉด, ์ปจํŠธ๋กค๋Ÿฌ๋Š” HTML ๋˜๋Š” JSON๊ณผ ๊ฐ™์€ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  6. ์ปจํ…Œ์ด๋„ˆ๋Š” ์ƒ์„ฑ๋œ ์‘๋‹ต์„ ์›น ์„œ๋ฒ„๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  7. ์›น ์„œ๋ฒ„๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์‘๋‹ต์„ ์ „์†กํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’ก์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ž€?
์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์›น ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์†Œ์ผ“์„ ์ƒ์„ฑํ•˜๊ณ , ํŠน์ • ํฌํŠธ์— ๋ฆฌ์Šค๋‹ํ•˜๊ณ , ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๋Š” ๋“ฑ์˜ ๋ณต์žกํ•œ ์ผ๋“ค์„ ํ•  ํ•„์š”๊ฐ€ ์—†๊ฒŒ ํ•ด์ค€๋‹ค. ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” servlet์˜ ์ƒ์„ฑ๋ถ€ํ„ฐ ์†Œ๋ฉธ๊นŒ์ง€์˜ ์ผ๋ จ์— ๊ณผ์ •(life-cycle)์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋งค๋ฒˆ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์“ฐ๋ ˆ๋“œ๋ฅผ ์š”์ฒญ ๋ณ„๋กœ ๋ถ€์—ฌํ•œ๋‹ค.
์š”์•ฝํ•˜๋ฉด, ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ HTTP ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ด๊ณ  ์„œ๋ธ”๋ฆฟ ๋ฐ JSP๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.