Preference νμμ μ€νν΄μΌν κ²λ€
1.μλ° μ€μΉ νμΈ
2. tomcat μλ² μ°κ²° μν νμΈ
editμ ν΅ν΄ μ€μ μ€μΉλ λλ ν 리λ₯Ό νμΈν μ μμ΅λλ€
3.μλ maven μ λ³λμ νλ‘κ·Έλ¨μ΄λ€
Apache Maven μ μλ°μ© νλ‘μ νΈ κ΄λ¦¬ νλ‘κ·Έλ¨μ λλ€. μλλ Mavenμ΄ νλ‘μ νΈλ₯Ό λ§λλ κ²μ΄λ€. μ΄ν΄λ¦½μ€λ λ³λμ λͺ λ Ήμ΄λ₯Ό μ λ ₯ν νμμμ΄ λ°λ‘ μ€νκ°λ₯νλλ‘ maven(λ©μ΄λΈ)μ ν¬ν¨νκ³ μμ΅λλ€.
mavenμ 무μμ νλκ°? νλ‘μ νΈλ₯Ό μμνλ κ²μμλΆν° μ΅μ’ μ μΌλ‘ νλ‘κ·Έλ¨μ μ λ°μ μΈ λ°°μΉ(deploy)κΉμ§μ μμ μ μΌκ΄μ μΌλ‘ μ²λ¦¬νλ κ²μ λλ€.
Spring(μ€νλ§)μμ pom.xml μΌλ‘μ μλ° νλ‘μ νΈ λΉλλ₯Ό μλνν΄μ£Όλ λΉλ ν΄μ λλ€.
νΌ νμΌμ μ€μ μ νλ©΄, μ΄κ²μ μν΄ κ΄λ¦¬κ° μ΄λ€μ§λλ€.
μ€νλ§μΌλ‘ νλ‘μ νΈλ₯Ό μ§ννλ€λ³΄λ©΄, λ§μ APIλ₯Ό νμ©νκ² λ©λλ€.
settings.xml νμΌμ μμ νλ©΄, κ²½λ‘λ€μ΄ λ³κ²½μ΄ λλ κ²μΈλ°, μ΄λ
local repository κ° μμ μ΄ λλ κ²μ΄λ―λ‘, λ‘컬μ 건λ리λ κ²μ΄ μλλλ€.
springμ web erpλ₯Ό λ§λ€κΈ° μν΄μ μ¬μ©ν©λλ€.
MVC νλ‘μ νΈλ₯Ό μ΅μ’ μ μΌλ‘ ꡬμΆν κ²μ΄κΈ° λλ¬Έμ νλ¨μ Spring MVC Projectλ₯Ό ν΄λ¦ν©λλ€.
μ₯μ μ MVCμ λν νλ μ νμ΄ μλμΌλ‘ μμ΄μ νμ©νλ©΄ λ©λλ€.
ν΄λ¦μ νλ©΄, κ΄λ ¨λ APIκ° νμλ‘ νκΈ° λλ¬Έμ, λ€μ΄λ‘λν΄μΌ νλ€λ μλ λ©μμ§λ₯Ό νμΈν μ μμ΅λλ€.
μ΄νμλ λ€μκ³Ό κ°μ λ©μμ§κ° μμ±λ©λλ€
ν¨ν€μ§κ° 1,2,3 λ¨κ³λ‘ νμ±λ©λλ€.
ν¨ν€μ§ μ΄λ¦μ μμ±ν λ μ€λ³΅νλ©΄ μλ©λλ€.
λ³΄ν΅ μ€λ¬΄μμλ ν¨ν€μ§λ₯Ό νμ¬ μ΄λ¦ λλ©μΈμ μμ±ν©λλ€. κ·Έλ¦¬κ³ κΈ°λ₯μ΄λΌλ μ±κ²©μ μλ―Ένλ κΈμ μμ±ν©λλ€
μμ€ν리ν¬(*) μ΄κ²μ 무μμ μλ―Έν κΉμ?
νλ‘μ νΈλ₯Ό μμ±ν λ, νλ‘μ νΈμ μ κ·Όνλ €λ©΄, context pathκ° λ§λ€μ΄μ ΈμΌ ν©λλ€.
/m μΌλ‘ μμ²μ ν΄μΌ context path λ₯Ό ν΅ν΄ νλ‘μ νΈμ μ κ·Όμ΄ λλλ°,
ν¨ν€μ§μμλ λ§μ°¬κ°μ§λ‘, λ§μ§λ§μ μ€λ λ¨μ΄κ° νλ‘μ νΈμ μ κ·Όνλ λͺ λ Ήμ΄κ° λ©λλ€.
μ£Όμνμ€ μ μ μ°λ¦¬κ° μ΄λ©μΌμ μμ±ν λ @μ comμ μ μμΉμ μμ±ν΄μ€μΌ νλ―μ΄, ν¨ν€μ§ μ΄λ¦λ κ·μΉμ΄ μ‘΄μ¬ν©λλ€. μ΄κ²μ μ κ· ννμ(regular expression) μ΄λΌκ³ ν©λλ€. λ³΄ν΅ μ κ· ννμμ μ΄μ©ν΄ λΆμ© μ²λ¦¬λ₯Ό μννλλ° μ¬μ©λμ΄ μ§κΈ°λ ν©λλ€.
kr.board λ‘ μμ±νμλ λ€μκ³Ό κ°μ΄ ν¨ν€μ§ μμ±μ μλ¬κ° μκ²Όμ΅λλ€. λμλ¦¬λ‘ μμ±μ νκΈ° λλ¬Έμ κ·Έλ μ΅λλ€.
kr.board.web
μ¬κΈ°μ webμ /m μ context pathμ κ°μ μν μ μννκ² λ©λλ€.
μλ£ λ²νΌμ ν΄λ¦νκ² λλ©΄ λ€μ΄λ‘λ νμλ₯Ό λ³Ό μ μμ΅λλ€.
μ΄ νμΌλ€μ λ‘컬 λ ν¬μ§ν 리μ κΈ°μ‘΄μ μλ κ² μ΄μΈμ μΆκ°λ‘ μ€μΉκ° λ©λλ€.
νμΌ κ΅¬μ±μ λ€μκ³Ό κ°μ΅λλ€
μλ° λ¨μμ m, c μ μν μ μννλ νμΌλ€μ μμ±ν©λλ€
srcμ web appμμλ λ·°μμλ€μ html,css,jspλ₯Ό μμ±νκ² λ©λλ€
resourceλ css, image κ°μ νμΌλ€μ , java scriptλ μΈλΆμ .jsλ‘ λ§λ€μ΄ λκ³ resourcesμ λ£κ² λ©λλ€.
web-inf μ home.jspλΌκ³ ν΄μ jspκ° web-appμμ μλ κ²μ΄ μλλΌ, web-inf μ μ‘΄μ¬νκ² λ©λλ€.
μ κ·Έλ΄κΉμ?
jsp νμΌμμλ λ€μκ³Ό κ°μ΄ JSTL κ³Ό EL μ΄ μμ΅λλ€.
μ¬κΈ°μ CONTROLλ SAMPLEμ μμΉν΄μμ΅λλ€
hello world λ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ λλ€.
clientλ hello world μΆλ ₯λ§ μκ² λ©λλ€. νμ§λ§ μ΄λ€ μμ²μ΄ μ΄λ»κ² μ²λ¦¬κ° λλμ§ νμΈνκΈ° μν΄μ mμκ² λ³΄λ΄μ viewλ¨μμ μ΄λ»κ² μ²λ¦¬κ° λκ³ cλ¨μμλ μ΄λ€ μμΌλ‘ μ§νμ΄ λλμ§ ν° νμ μ΄ν΄νμ μΌ ν©λλ€.
JAVA Resources λ controllerκ° μ‘΄μ¬νμ¬, home.jspμ μν₯μ μ£Όκ² λ©λλ€.
controller λ¨μμλ
webappλ rootλ‘ μκ°νλ©΄ λ©λλ€.
return κ°μΌλ‘λ return "/web-inf/views/home.jsp";(물리μ μΈ κ²½λ‘) λΌκ³ μ μ§ μκ³
μ μ§λ³΄μκ° μ΄λ €μ΄ μ½λμ λλ€.
Spring μμλ μμ κΈμ /web-inf/views/ λ₯Ό λΌμ΄λ΄κ³ home μ΄λΌλ νμΌ λͺ λ§ μ μ΄μ£Όλ©΄ λ©λλ€.
springμ appServletμ λ³΄κ² λλ©΄, λ€μκ³Ό κ°μ΄ prefix(μ λμ¬) , suffix(μ λ―Έμ¬) μ λ€μκ³Ό κ°μ΄ νμΌλ€μ΄ μ½λ©λμ΄μ Έμμλλ€. κ·Έλ κΈ° λλ¬Έμ κ΅³μ΄ κΈΈκ² μ μ΄μ€ νμκ° μμ΅λλ€.
μ΄λ μ μ§λ³΄μκ° νΈν΄μ§λ λ°©λ²μ λλ€.
μ¦, controllerλ jsp κ²½λ‘λ₯Ό returnνλλ° νμΌ μ 체μ 물리μ μΈ κ²½λ‘λ₯Ό μ μ΄μ€ νμκ° μμ΅λλ€. λ΄λΆμ μΌλ‘ μ²λ¦¬λμ΄μ§κΈ° λλ¬Έμ λλ€.
νλ‘μ νΈλ₯Ό μμ±νλ©΄, Tomcat μλ²μ add λ₯Ό μμΌμΌ /web μΌλ‘ λ±λ‘μ΄ λμ΄μ§λλ€.
add νλ λ°©λ²μ 3κ°μ§κ° μμ΅λλ€.
첫λ²μ¨°λ, tomcat μλ²μ μ€λ₯Έμͺ½ λ²νΌ ν΄λ¦ -> add and remove λ₯Ό ν΄λ¦νλ λ°©μμ λλ€.
λλ²μ¨°λ, SpringMVC01μ νλ¨μ Tomcat v8.5 Server at localhost μ λλκ·Ένμ¬ λ£μ΅λλ€.
μΈλ²μ¨°λ, Tomcat μλ²λ₯Ό νλ¨μμ λλΈν΄λ¦νμ¬ overviewλ₯Ό μ½λλ€. κΈ°λ³Έμ μΈ port λ²νΈλ 8080 μ λλ€. μ΄λ―Έ μ¬μ©λμ΄ μ§κ³ μλ μλ²λ oracleμ΄κΈ° λλ¬Έμ λλ€. λ΄λΆμμ 8080 ν¬νΈλ₯Ό μ¬μ©νκ³ μκΈ° λλ¬Έμ, μΆ©λμ΄ λκΈ° λλ¬Έμ, ν¬νΈλ₯Ό λ°κΏμ€μΌ ν©λλ€.
첫λ²μ¨° λ°©λ²μ λλ€.
μλ¨μ server ν΄λμμ
μ¦, /web μΌλ‘ μμΌ μ°λ¦¬μ kr.board.web μ SpringMVC01 μ΄ μ€νλμ΄μ§κ² λ©λλ€.
μ£Όμλ₯Ό μ λ ₯ν λ, λ§μ§λ§μ / λ£μ΄μΌνλ€
μ€νν λ jsp μ€νX
controllerλ‘ λ겨μ€μΌ μ€νμ΄ κ°λ₯νλ€
requestmappingμμ / μ΄ μμΌ μ€νμ΄ μ μλ£λ©λλ€
μΉμμ
http://localhost:8081/web/
κ²μ
4.3.14 λ²μ λ³κ²½ν΄μ£ΌκΈ° - νΌνμΌμμ
mvn repository μ¬μ΄νΈμμ spring web mvc μμ λ²μ μ νμΈνμ
countring μκ° λμΌλ λ§μ΄ μ»μ κ²μΌλ‘ νλ¨νμ¬, λ€μ΄λ‘λ λ°μ΅λλ€
jar νμΌλ‘ mvn λ ν¬μ§ν 리 μ¬μ΄νΈμμ λ°μμ€λλ€.
κ·Έλ¦¬κ³ 1.6μ΄ μλ 1.8λ‘ μ λ°μ΄νΈν΄μ€λ€. μ΄λ λ°λ‘ JRE Sysytem Library κ°μ κ²½μ° λ²μ μ΄ λ³κ²½λκ² λ³΄μ΄μ§ μμ΅λλ€.
κ·Έλ κΈ° λλ¬Έμ μ λ°μ΄νΈλ₯Ό ν΄μ€μΌ ν©λλ€.
μ λ°μ΄νΈλ₯Ό μνν©λλ€.
μ λ°μ΄νΈλ κ°μ μ±μ΄ μμ΄μΌ μ’μ΅λλ€. 체ν¬νμλ₯Ό ν΄μ€λλ€.
λͺ¨λ μ»΄νμΌλ¬κ° 1.6 λ²μ μμ 1.8λ‘ λ³κ²½μ΄ λ©λλ€.
λ€μ μ΄μ΄λ³΄λ©΄, λ²μ μ΄ λ³κ²½λ κ²μ νμΈν μ μμ΅λλ€.
[μ€μβ β ] μ΄ κ³Όμ μ λλ² λ°λ³΅ν΄μ€μΌ μ λ°μ΄νΈκ° μλ²½νκ² μνλ©λλ€.
μνμ μμ
κ³ κ° - κ²½λΉμ - μλ΄μ
κ²½λΉλ Controller
μλ΄μ - view- jsp
ν μλ²μ§, ν λ¨Έλ - κ²½λΉλ₯Ό κ±°μΉμ§ μκ³ , λ°λ‘ viewλ¨μΈ μλ΄μμ λ§λ μ μμ΅λλ€.
κ²½λΉλ₯Ό κ±°μΉμ§ μκ³ λ°λ‘ View λ¨μΌλ‘ κ°κ² λλ€λ©΄, κΈ°μ‘΄μ κΈ°λ€λ¦¬λ κ³ κ°λ€μ΄λ νΌμ , μ 무μ λ§μ°°μ΄ μκΉλλ€.
κ³ κ°μ κ²½λΉλ₯Ό κ±°μ³μ view λ¨μΌλ‘ κ°κ² νλ κ²μ κ·μΉμ μ ν΄μΌν©λλ€.
μ¬κΈ°μ κ²½λΉλ partition μ νμ±ν΄μ,
web-inf μλμ jsp λ£λ μ΄μ : clientκ° λ°λ‘ jspλ‘ κ°λ κ²μ μμ²μ μΌλ‘ λ§μΌλ €κ³ μ‘΄μ¬ν©λλ€.
mvcλ ν΄λΌμ΄μΈνΈκ° controller μκ² μμ²μ ν΄μ jspμ μ κ·Όμ νλ κ²μ λλ€.
controller κ° jspλ‘ ν¬μλ©μ ν΄μ μμ μ΄ μνλ©λλ€.
μμ νμ΄μ§λ view ν΄λκ° μλ webapp μλμ λ§λ€μ΄μΌ ν©λλ€.
νμΌμ index.jsp λΌκ³ λ§λλλ€.
boardList.jspλ views ν΄λμλμ μμ± ν΄μ€λλ€.
μ£Όμ
λμλ¬Έμ λ°κΎΈλ κ² κΈμ§.
λ°κΎΈλ €λ©΄, μμ νλ€κ° λ€μ μμν κ²
κ²μν 리μ€νΈ νμΌ μμ±
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
μ¬κΈ°μ μΌλΆ μ½λ μμ
κ²μν κΈ°λ³Έ ν/ν νλ¦Ώμ λλ€. λ³κ²½μ ν΄μ£Όλ©΄ λ©λλ€.
볡μ¬νμ¬, λΆμ¬λ£μ΅λλ€.
νμΌμ λκ°μ΄ 볡μ¬νμ¬ λΆμ¬λ£μ΅λλ€
board.jsp λΌκ³ λμ΅λλ€
μ΄λ κ² λ§λ€μ΄ λλ μ΄μ λ ν° νμ κ°μλ°, λ€λ₯Έ νμ΄μ§μμ νμ©νκΈ° μν΄μμ λλ€.
jsp νμΌμ λ€μκ³Ό κ°μ΄ μμ±ν©λλ€.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Spring MVC</h2>
<div class="panel panel-default">
<div class="panel-heading">BOARD LIST</div>
<div class="panel-body">
<!-- μ¬κΈ°μ κ²μν 리μ€νΈ μΆλ ₯ -->
<table class="table">
<tr>
<td>λ²νΈ</td>
<td>μ λͺ©</td>
<td>μμ±μ</td>
<td>μμ±μΌ</td>
<td>μ‘°νμ</td>
</tr>
<tr>
<td>1</td>
<td>κ²μν λ§λ€κΈ°</td>
<td>κ΄λ¦¬μ</td>
<td>2021-11-17</td>
<td>0</td>
</tr>
</table>
</div>
<div class="panel-footer">SQL μ격κ²μ μ€μ λ¬Έμ </div>
</div>
</div>
</body>
</html>
jsp νμΌμ λ°λ‘ μ€νν μκ° μμ΅λλ€![μ€μβ ]
web-inf ν΄λ μλμ μκΈ° λλ¬Έμ, μκΉ μνμ μμμ²λΌ λ°λ¦¬μΌμ΄λ(νν°μ )μ΄ μμ΄μ λμ΄κ°μ§ μμ΅λλ€.
C λ₯Ό μ΄λ»κ² λ§λλμ λ°λΌ ν¨μ¨μ΄ λ¬λΌμ§λλ€.
pojo : μΌλ° ν΄λμ€λ‘μ, Plain Old Java Object, κ°λ¨ν POJOλ λ§ κ·Έλλ‘ ν΄μμ νλ©΄ μ€λλ λ°©μμ κ°λ¨ν μλ° μ€λΈμ νΈλΌλ λ§λ‘μ Java EE λ±μ μ€λ frameworkλ€μ μ¬μ©νκ² λλ©΄μ, ν΄λΉ νλ μμν¬μ μ’ μλ λ¬΄κ±°μ΄ κ°μ²΄λ₯Ό λ§λ€κ² λ κ²μ λ°λ°ν΄μ μ¬μ©λκ² λ μ©μ΄μ λλ€
FrontControllerκ° ν΄μΌν μΌμ λμ ν΄μ£Όλ μν μ μννλ κ²μ΄ POJO μ λλ€.
μλ°μμΈ POJOλ λ§μ μ 무λ€μ μννκ² λ©λλ€.
λλ§μ μΌμ μννλ©°, FrontControllerλ μ€κ°μ ~μ΄λλ‘ κ°μΈμ κ°λ²Όμ΄ μΌλ€μ μ§λ κ΄λ¦¬νλ μν μ μνν©λλ€.
POJOλ κ°μ 맑μ μΌλ€μ μ±κ²©μ λ°λΌμ μ¬λ¬ κ°λ‘ λλ©λλ€. ν λͺ μ΄ λ§μ μΌμ νλ©΄, λΆνκ° κ±Έλ¦¬κΈ° λλ¬Έμ, κ° μ ν λͺ μ λ°μ΄μ²΄ν¬/qr 체ν¬λ₯Ό μννκ³ , νλͺ μ λκΈ°νλ₯Ό λ°ννκ³ , νλͺ μ μ²μλ₯Ό νλ λ±μ μΌλ€μ μνν©λλ€.
κ°μμ μν μ λ°λΌ Controller μ΄λ¦μ΄ λ¬λΌμ§κ² λ©λλ€.
μλ΄μμ μ΄λ―Έ λ§λ€μ΄μ Έ μμ΅λλ€. (λ Έλμ λΆλΆ)
web.xml μ λ°°μΉ μμ μμ λλ€.
νμΌμ μ΄μ΄λ³΄λ©΄, DispatcherServlet μ΄λΌκ³ μ΄λ―Έ λ§λ€μ΄μ Έ μλλ°, μ΄κ²μ΄ λ°λ‘ FrontControllerμ λλ€.
μμΉλ λ€μκ³Ό κ°μ΅λλ€.
μ 체 νλ¦λλ λ€μκ³Ό κ°μ΄ λνλΌ μ μμ΅λλ€.
dispatcher μμ κ° μ handler mappingμμ κ° κΈ°λ₯(κ²μν, λ‘κ·ΈμΈ μ²λ¦¬ λ±μ κΈ°λ₯μ μννλ 컨νΈλ‘€λ¬λ€μ΄λ λ§Ύγ νλ μν μ μνν©λλ€)
μ°λ¦¬λ μ΄λ―Έ Front Controller λ§λ€μ΄μ Έ μκΈ° λλ¬Έμ, POJOλ₯Ό μμ±ν΄μΌν©λλ€.
ν¬μ‘°λ§λ€κΈ°(컨νΈλ‘€λ¬)
-μλΈλ μ΄ μλ , class λ‘ λ§λ€μ΄μ€μΌν©λλ€
-μλ°λ¦¬μμ€-kr.board.web μμ μ°ν΄λ¦ν©λλ€
μ¬κΈ°μ λ€μκ³Ό κ°μ΄ μ·¨νλ νλμ λ°λΌ λͺ λͺ μ ν΄μ€λλ€.( μ>μ‘μ ..λ±)
μ λ BoardControllerλ₯Ό λ§λ€κΈ° μν΄μ λ€μκ³Ό κ°μ΄ λͺ λͺ ν΄μ£Όμμ΅λλ€.
BoardController
νΈλ€λ¬ 맀ν(Handler Mapping) μ κ°λ
μ¬μ©μκ° http://127.0.0.1:8081/web/boardList.do μ΄λ¬ν μμ²μ μ£Όλ©΄ C λ‘ λ°μλ€μ¬ boardList() { } μ μννλ μμ μ 맀μΉνλ κ²μ λλ€.
** ctrl + spaceλ‘ λΆλ¬μ€κΈ° ( Controller) , μλμΌλ‘ import λ©λλ€. [κΈ°λ³Έ κ°λ μ€μ: β ]
Mapping μμ²μ μ 체 νλ¦λ
κ²μν 리μ€νΈ κ°μ Έμ€κΈ°
requestMapping μ΄λΌλ μ΄λ Έν μ΄μ μ κ±Έκ³ , κ°μ Έμ΅λλ€. - μ μ²λ¦¬ λΌκ³ ν©λλ€
*μ μ²λ¦¬ : λ°μ΄ν° κ°λ€ μ€μ μ΄μν κ°λ€μ λΊ΄κ±°λ λ£κ±°λ λ μ€ νλ,
μλ°μμλ μ΄λ¬ν μμ²μ΄ λ€μ΄μ€λ©΄, μ΄λ ν λ©μλκ° μμ΄μΌ νλμ§λ₯Ό μ°κ²°ν΄μ€λλ€.
Handler Mapping λ§λ€κΈ°
λ³΄ν΅ MVC κ°λ°μ νλ€κ³ νλ©΄, Controllerλ₯Ό μ€κ³νλ κ²μ λλ€.
κ°λ°μκ° κ΅¬νν΄μΌνλ λΆλΆμ΄ Controller μ λλ€(보λΌμ)
νλμμ Springμ μν΄μ μμ±μ΄ λλ λΆλΆμ λλ€.
Viewλ κ°λ°μκ° κ΅¬νν μλ μκ³ , Springμμ μ 곡ν΄μ€ μλ μμ΅λλ€.
μλ₯Όλ€μ΄, json νμμΌλ‘ μλ£λ₯Ό μμ²λ°μΌλ©΄, webμμλ viewκ° νμμμ΅λλ€. νμ§λ§, λ€λ₯Έ νμμ΄λ©΄ jspλ±μ ꡬνμ΄ νμν©λλ€.
μ¬κΈ°μ ν΄λ³Ό κ²μ 보λΌμμ Service μμ΄ Controller μ Repository λ₯Ό μ°κ²°νλ € ν©λλ€.
μμΌλ‘ μμ±ν΄μΌ ν κ²μ Modelμ λλ€. μλνλ©΄ λ무 λ§μ μΌλ€μ κ° POJOκ° μ²λ¦¬νκΈ°μλ λ무 λ§κΈ° λλ¬Έμ λλ€.
κ³μΈ΅(Layer 1 2 3)
3 κ°μ§ κ³μΈ΅μΌλ‘ μ€κ³λλ©΄, 볡μ‘νκΈ΄ νμ§λ§, λμ€μ νΈν΄μ§λλ€.
볡μ‘νλ©΄, μ μ§λ³΄μκ° νΈν΄μ§λλ€. μλνλ©΄, νΉμ μΌμ μννλ μν μ΄ λ§‘μ λΆλΆλ§ λ³κ²½νκ³ μμ νλ©΄ λκΈ° λλ¬Έμ λλ€. νμ§λ§, λ§μ½μ μν μ΄ λλ μ§μ§ μμμΌλ©΄ 건λλ €μΌ νλ λΆλΆμ΄ κ·Έλ§νΌ λ§μμ§λ κ²μ μλ―Ένκ² λ©λλ€.
Dispatcher λΆλΆμ΄ 1 layer μ΄λ©°, Controller λΆλΆμ 2 layerμ΄λ©°, Repository λΆλΆμ 3 Layer μ λλ€.
Dao μμ±
src/main/java λΆλΆμμ new - package- kr.board.dao λΌκ³ μμ±ν΄μ€λλ€.
λ§λ dao ν¨ν€μ§μμ class λ₯Ό μμ±ν©λλ€.
리μ€νΈλ μλ° μ νΈ
boardDAO
getters and setters λ₯Ό μ€μ ν΄μ€λλ€.
μ class λ₯Ό interfaceλ‘ λ³κ²½ν΄μ£Όλ κ²μΌκΉ?
μ΄κ²μ μ΄λ κ² λ°κΏμ€λλ€.
BoardController - μΉ νλ¨μ class λ§μ§κΈ°
'ποΈμννΈμ¨μ΄ > πjava & Servlete & JSP' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ° μκ³ λ¦¬μ¦ λ¬Έμ (λμ΄λ μ€ν) (0) | 2022.03.18 |
---|---|
JSTL EL MVC(feat.Java) (0) | 2021.11.16 |
MVC ν¨ν΄ 곡λΆνκΈ° 1 (0) | 2021.09.30 |
μ»΄νμΌ, μ»΄νμΌλ¬, μλ° μ€ν¬λ¦½νΈ, μλ°, jsp, servlet μ©μ΄ μ 리 (0) | 2021.09.22 |
jsp servlet (0) | 2021.09.20 |