“`html
JSP μμμ μ¬μ©νμ¬ Java μΉ μ ν리μΌμ΄μ μ μ¬μ©μλ₯Ό μΆκ°νλ λ°©λ²: μ’ ν© κ°μ΄λ
λͺ©μ°¨
- μκ°
- 컨νΈλ‘€λ¬ μ€μ
- ν¨ν€μ§ λ° μ΄λ Έν μ΄μ μ λ°μ΄νΈ
- μ¬μ©μ μΆκ° λ©μλ μμ±
- JSP μμ μμ±
- web.xml λ° Maven μ’ μμ± μ λ°μ΄νΈ
- μ¬μ©μ μΆκ° κΈ°λ₯ ν μ€νΈ
- κ²°λ‘
- μΆκ° μλ£
μκ°
μΉ κ°λ°μ μ§ννλ νκ²½μμ μ¬μ©μ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ κ²μ λ§€μ° μ€μν©λλ€. μ΄ κ°μ΄λλ JSP (JavaServer Pages) μμμ μ¬μ©νμ¬ Java μΉ μ ν리μΌμ΄μ μ μ¬μ©μλ₯Ό μΆκ°νλ κ³Όμ μ λ€λ£Ήλλ€. ꡬ쑰νλ MVC (Model-View-Controller) μν€ν μ²λ₯Ό λ°λΌ κ°λ°μλ μ‘°μ§μ μ΄κ³ μ μ§ κ΄λ¦¬κ° μ©μ΄νλ©° νμ₯ κ°λ₯ν μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€. μ΄ νν 리μΌμ μ΄λ³΄μμ κΈ°λ³Έ μ§μμ κ°μ§ κ°λ°μλ₯Ό μν΄ μ€κ³λμμΌλ©°, μ¬μ©μ μΆκ° κΈ°λ₯μ ꡬννλ λͺ ννκ³ κ°κ²°ν κ²½λ‘λ₯Ό μ 곡ν©λλ€.
컨νΈλ‘€λ¬ μ€μ
컨νΈλ‘€λ¬ μ 리
μ μ 리λ μ ν리μΌμ΄μ μ κ΄μ¬μ¬λ₯Ό λΆλ¦¬νμ¬ μ½λλ² μ΄μ€λ₯Ό κ΄λ¦¬νκ³ νμ₯νκΈ° μ½κ² λ§λλλ€. μΌλ°μ μΌλ‘ HomeControllerλ ννμ΄μ§ λ° μ€λ₯ νμ΄μ§μ κ°μ ν κ΄λ ¨ νμ΄μ§λ₯Ό κ΄λ¦¬ν©λλ€. κ·Έλ¬λ μ ν리μΌμ΄μ μ΄ μ»€μ§μ λ°λΌ λ¨μΌ 컨νΈλ‘€λ¬λ νΉν λ€μν doGet λ° doPost λ©μλκ° λ€λ₯Έ κ²½λ‘λ₯Ό μ²λ¦¬ν λ 볡μ‘ν΄μ§ μ μμ΅λλ€.
μ‘°μ§μ μ μ§νκΈ° μν΄ μ ν리μΌμ΄μ μ νΉμ λΆλΆμ μ²λ¦¬νλ μΆκ° 컨νΈλ‘€λ¬λ₯Ό λμ ν©λλ€. μ΄ λͺ¨λμ μ κ·Ό λ°©μμ κ° μ»¨νΈλ‘€λ¬κ° λͺ νν μ± μμ μ§λλ‘ νμ¬ κ°λ μ±κ³Ό μ μ§ κ΄λ¦¬μ±μ ν₯μμν΅λλ€.
μ¬μ΄νΈ 컨νΈλ‘€λ¬ μΆκ°
μ¬μ΄νΈ λ³ μμ μ μ²λ¦¬νκΈ° μν΄ SiteControllerλΌλ μ 컨νΈλ‘€λ¬λ₯Ό μμ±ν©λλ€. μ΄ μ»¨νΈλ‘€λ¬λ λͺ¨λ μ¬μ΄νΈ κ΄λ ¨ νμ΄μ§λ₯Ό κ΄λ¦¬νμ¬ HomeControllerμ ꡬλΆν©λλ€.
μ¬μ΄νΈ 컨νΈλ‘€λ¬ μΆκ° λ¨κ³:
- 컨νΈλ‘€λ¬ μμ±:
- IDEμμ νλ‘μ νΈλ₯Ό λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμΌλ‘ ν΄λ¦ν©λλ€.
- New > ServletμΌλ‘ μ΄λν©λλ€.
- μλΈλ¦Ώ μ΄λ¦μ SiteControllerλ‘ μ§μ ν©λλ€.
- URL 맀ν ꡬμ±:
- μ¬μ΄νΈ νΉμ μμ²μ μ²λ¦¬ν URL 맀νμ μ€μ ν©λλ€, μ: /site.
- doGet λ° doPost λ©μλ λͺ¨λ ν¬ν¨λμλμ§ νμΈν©λλ€.
- μ¦μ νμνμ§ μμ κ²½μ° μμ±μλ₯Ό μλ΅νμ¬ λ¨μμ±μ μ μ§ν©λλ€.
- κΈ°μ‘΄ μ½λ 리ν©ν λ§:
- HomeControllerμμ μ¬μ΄νΈ κ΄λ ¨ switch μ¬λ‘λ₯Ό μλ‘ μμ±λ SiteControllerλ‘ μ΄λν©λλ€.
- HomeControllerμμλ ννμ΄μ§ λ° κΈ°λ³Έ μ¬λ‘μ κ°μ ν κ΄λ ¨ μ¬λ‘λ§ μ μ§νλλ‘ λΆνμν μ¬λ‘λ₯Ό μ κ±°ν©λλ€.
SiteControllerμ μ¬μ΄νΈ νΉμ μμ μ μμν¨μΌλ‘μ¨ μ ν리μΌμ΄μ λ΄μμ λͺ νμ±κ³Ό κ΄μ¬μ¬μ λΆλ¦¬λ₯Ό ν₯μμν΅λλ€.
ν¨ν€μ§ λ° μ΄λ Έν μ΄μ μ λ°μ΄νΈ
Javaxμμ Jakartaλ‘ μ ν
νλ Java μΉ μ ν리μΌμ΄μ μ Javaxμ νκ³μμΈ Jakarta Servlet APIλ₯Ό μ¬μ©ν©λλ€. ν¨ν€μ§ μ΄λ¦μ javaxμμ jakartaλ‘ μ λ°μ΄νΈνλ©΄ μ΅μ νμ€κ³Ό νΈνμ±μ μ μ§νκ³ Jakartaμ μ§μμ μΈ κ°λ° ννμ λ릴 μ μμ΅λλ€.
ν¨ν€μ§ μ΄λ¦ μ λ°μ΄νΈ λ¨κ³:
- ν¨ν€μ§ μ μΈ μμ :
- λͺ¨λ javax.servlet μΈμ€ν΄μ€λ₯Ό jakarta.servletλ‘ κ΅μ²΄ν©λλ€.
- μν¬νΈ λ¬Έ μ
λ°μ΄νΈ:
- λͺ¨λ μν¬νΈ λ¬Έμ΄ μ ν¨ν€μ§ μ΄λ¦μ λ°μνλμ§ νμΈν©λλ€.
- IDE 리ν©ν λ§ λꡬ μ¬μ©:
- IDEμ 리ν©ν λ§ κΈ°λ₯μ νμ©νμ¬ μ°Έμ‘°λ₯Ό μλμΌλ‘ μ λ°μ΄νΈνκ³ μλ μ€λ₯ κ°λ₯μ±μ μ€μ λλ€.
μ΄λ Έν μ΄μ μ¬μ© vs. XML ꡬμ±
μ΄λ Έν μ΄μ μ μ ν΅μ μΈ XML κΈ°λ° κ΅¬μ±μΈ web.xmlμ λ체νμ¬ μλΈλ¦Ώμ ꡬμ±νλ κ°μνλ λ°©λ²μ μ 곡ν©λλ€. μ΄λ Έν μ΄μ μ μ¬μ©νλ©΄ κ°λ°μλ κ΅¬μ± λ©νλ°μ΄ν°λ₯Ό μ½λ λ΄μ μ§μ ν¬ν¨ν μ μμ΄ μ μ§ κ΄λ¦¬κ° μ©μ΄νκ³ κ°λ μ±μ΄ ν₯μλ©λλ€.
μ΄λ Έν μ΄μ μ¬μ©μ μ₯μ :
- λ¨μμ±: κ΄λ²μν XML ꡬμ±μ νμμ±μ μ€μ λλ€.
- μ μ§ κ΄λ¦¬μ±: κ΅¬μ± λ³κ²½μ΄ μ½λμ κ΅νλμ΄ κ΄λ¦¬κ° μ©μ΄ν©λλ€.
- λͺ νμ±: μλΈλ¦Ώκ³Ό 맀ν κ°μ μ°κ΄μ±μ μ½λλ² μ΄μ€ λ΄μμ κ°μ‘°ν©λλ€.
μ΄λ Έν μ΄μ ꡬν:
@WebServlet
μ΄λ Έν μ΄μ μΆκ°:- SiteController ν΄λμ€μ
@WebServlet
μ μ₯μν©λλ€. - μ΄λ Έν μ΄μ λ΄μμ URL ν¨ν΄μ μ§μ μ μνμ¬ λ³λμ XML 맀νμ΄ νμ μλλ‘ ν©λλ€.
@WebServlet("/site") public class SiteController extends HttpServlet { // 컨νΈλ‘€λ¬ λ©μλ }
- SiteController ν΄λμ€μ
- XML 맀ν μ κ±°:
- μ΄λ Έν μ΄μ μ΄ μ μ©λλ©΄ web.xmlμμ ν΄λΉ μλΈλ¦Ώ 맀νμ μ κ±°ν©λλ€.
μ΄λ Έν μ΄μ μ μ±νν¨μΌλ‘μ¨ μ ν리μΌμ΄μ μ κ΅¬μ± λ°©μμ νλννκ³ , νλ Java κ°λ° κ΄νμ λ§μΆ₯λλ€.
μ¬μ©μ μΆκ° λ©μλ μμ±
doPost λ©μλ ꡬν
컨νΈλ‘€λ¬μ doPost λ©μλλ μμ μ μΆκ³Ό κ°μ λ€μ΄μ€λ POST μμ²μ μ²λ¦¬ν©λλ€. μ¬μ©μλ₯Ό μΆκ°νκΈ° μν μ μ© λ©μλλ₯Ό ꡬννλ©΄ μ¬μ©μ λ°μ΄ν°κ° μμ νκ³ ν¨μ¨μ μΌλ‘ μ²λ¦¬λ©λλ€.
doPost ꡬν λ¨κ³:
- κΈ°μ‘΄ doPost λ©μλ 볡μ :
- HomeControllerμμ κΈ°μ‘΄ doPost λ©μλλ₯Ό 볡μ¬ν©λλ€.
- μΌκ΄μ±μ μ μ§νκΈ° μν΄ SiteControllerμ λΆμ¬λ£μ΅λλ€.
- λ©μλ μ΄λ¦ λ³κ²½:
- λ©μλ μ΄λ¦μ listUsersλ‘ λ³κ²½νμ¬ κΈ°λ₯μ μ ννκ² λ°μν©λλ€.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { listUsers(request, response); }
- λ©μλ κ°μν:
- λΆνμν μ€μ μ κ±°νκ³ νμ μμ λ§ μ μ§ν©λλ€.
- listUsers λ©μλλ₯Ό doPost λ΄μμ νΈμΆνμ¬ μμ²μ ν¨κ³Όμ μΌλ‘ μ²λ¦¬ν©λλ€.
μ¬μ©μ μΆκ° μ²λ¦¬
μ¬μ©μ μΆκ°λ₯Ό μ©μ΄νκ² νκΈ° μν΄ SiteController λ΄μ addUserλΌλ λ©μλλ₯Ό μ μν©λλ€. μ΄ λ©μλλ μμ λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ λ°μ΄ν°λ² μ΄μ€μ μνΈ μμ©νμ¬ μλ‘μ΄ μ¬μ©μ μ 보λ₯Ό μ μ₯ν©λλ€.
μ¬μ©μ μΆκ° μ²λ¦¬ λ¨κ³:
- addUser λ©μλ μ μ:
private void addUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String title = "Add User"; RequestDispatcher dispatcher = request.getRequestDispatcher("addUser.jsp"); request.setAttribute("title", title); dispatcher.forward(request, response); }
- Switch λ¬Έμ μ¬λ‘ μΆκ°:
- addUser μμ²μ μ²λ¦¬νκΈ° μν΄ switch λ¬Έμ μλ‘μ΄ μ¬λ‘λ₯Ό ν΅ν©ν©λλ€.
case "adduser": addUser(request, response); break;
- JSPλ‘ ν¬μλ©:
- λ©μλλ μ¬μ©μ μΈλΆ μ 보λ₯Ό μ λ ₯ν μ μλ addUser.jspλ‘ μμ²μ ν¬μλ©ν©λλ€.
μ μ© λ©μλλ₯Ό ν΅ν΄ μ¬μ©μ μΆκ°λ₯Ό 체κ³μ μΌλ‘ μ²λ¦¬ν¨μΌλ‘μ¨ λ°μ΄ν° μ²λ¦¬κ° μ‘°μ§μ μ΄κ³ μμ νκ² μ΄λ£¨μ΄μ§λλ€.
JSP μμ μμ±
addUser.jsp μμ±
JSP μμμ μλ‘μ΄ μ¬μ©μ μΈλΆ μ 보λ₯Ό μ λ ₯νλ μ¬μ©μ μΈν°νμ΄μ€ μν μ ν©λλ€. μ μ© JSP νμ΄μ§λ₯Ό μμ±νλ©΄ μ¬μ©μ κ²½νμ΄ ν₯μλκ³ μλ²λ‘μ λ°μ΄ν° μ μΆμ΄ κ°μνλ©λλ€.
addUser.jsp μμ± λ¨κ³:
- μΉ μ± λλ ν λ¦¬λ‘ μ΄λ:
- νλ‘μ νΈ κ΅¬μ‘°μμ src/main/webappμΌλ‘ μ΄λν©λλ€.
- μ JSP νμΌ μμ±:
- λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ ν΄λ¦νκ³ New > JSP Fileμ μ νν©λλ€.
- νμΌ μ΄λ¦μ addUser.jspλ‘ μ§μ ν©λλ€.
- μμ λμμΈ:
- username, password, email λ±κ³Ό κ°μ μ¬μ©μ μΈλΆ μ 보λ₯Ό μΊ‘μ²νλ μμμ ꡬνν©λλ€.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Add User</title> </head> <body> <h1>Add New User</h1> <form action="${pageContext.request.contextPath}/site" method="post"> <input type="hidden" name="page" value="addUser" /> <label for="username">Username:</label> <input type="text" id="username" name="username" required><br><br> <label for="password">Password:</label> <input type="password" id="password" name="password" required><br><br> <label for="email">Email:</label> <input type="email" id="email" name="email" required><br><br> <input type="submit" value="Add User"> </form> </body> </html>
- ν€λ λ° νΈν° ν¬ν¨:
- μ νμ μΌλ‘, μΌκ΄λ λ μ΄μμμ μν΄ header.jspμ footer.jspλ₯Ό ν΅ν©ν©λλ€.
μ μ© JSP μμμ μμ±ν¨μΌλ‘μ¨ μ¬μ©μλ μλ‘μ΄ μ¬μ©μ μ 보λ₯Ό μΆκ°νκΈ° μν λͺ ννκ³ μ§κ΄μ μΈ μΈν°νμ΄μ€λ₯Ό μ 곡λ°μ΅λλ€.
μμ μ‘μ ꡬμ±
μμ μ‘μ μ μ μ νκ² κ΅¬μ±νλ©΄ μ μΆλ λ°μ΄ν°κ° μ μ ν 컨νΈλ‘€λ¬ λ©μλλ‘ μ ννκ² μ λ¬λ©λλ€.
μμ μ‘μ κ΅¬μ± λ¨κ³:
- μ‘μ
μμ± μ€μ :
- action μμ±μ΄ SiteControllerλ₯Ό κ°λ¦¬ν€λλ‘ μ€μ ν΄μΌ ν©λλ€.
<form action="${pageContext.request.contextPath}/site" method="post">
- νμ΄μ§ 맀κ°λ³μμ© μ¨κ²¨μ§ μ
λ ₯ μ μ:
- μμ (addUser)μ μ§μ νκΈ° μν΄ μ¨κ²¨μ§ μ λ ₯μ ν¬ν¨ν©λλ€.
<input type="hidden" name="page" value="addUser" />
- μμ μ μΆ μ²λ¦¬:
- μ μΆ μ, SiteControllerλ addUser 맀κ°λ³μλ₯Ό μλ³νκ³ ν΄λΉ λ©μλλ₯Ό νΈμΆν©λλ€.
μ΄ κ΅¬μ±μ ν΅ν΄ μμ λ°μ΄ν°κ° μ ννκ² SiteControllerμ addUser λ©μλλ‘ λΌμ°ν λμ΄ μ²λ¦¬λ©λλ€.
web.xml λ° Maven μ’ μμ± μ λ°μ΄νΈ
μλΈλ¦Ώ 맀ν μ κ±°
μ΄λ Έν μ΄μ λμ μΌλ‘ μΈν΄ web.xml λ΄μ λͺ μμ μλΈλ¦Ώ 맀νμ΄ λΆνμν΄μ§λλ€. μ΄λ¬ν 맀νμ μ κ±°νλ©΄ ꡬμ±μ΄ κ°μνλκ³ μ μ¬μ μΈ μΆ©λμ΄ μ€μ΄λλλ€.
μλΈλ¦Ώ 맀ν μ κ±° λ¨κ³:
- web.xml μ΄κΈ°:
- νλ‘μ νΈ κ΅¬μ‘°μμ WEB-INF/web.xmlλ‘ μ΄λν©λλ€.
- λΆνμν 맀ν μμ :
- μ΄λ Έν μ΄μ μ΄ μ΄μ μ΄ κ΅¬μ±μ μ²λ¦¬νλ―λ‘ SiteControllerμ κ΄λ ¨λ μλΈλ¦Ώ 맀νμ μ κ±°ν©λλ€.
<!-- λ€μ μλΈλ¦Ώ 맀νμ μ κ±°νμμμ€ --> <servlet-mapping> <servlet-name>SiteController</servlet-name> <url-pattern>/site</url-pattern> </servlet-mapping>
- λ³κ²½ μ¬ν μ μ₯:
- μ κ±°λ μλΈλ¦Ώ 맀νμ λν λͺ¨λ μ°Έμ‘°κ° μμ λμλμ§ νμΈνμ¬ νΌλμ νΌν©λλ€.
μ€λ³΅λ μλΈλ¦Ώ 맀νμ μ κ±°ν¨μΌλ‘μ¨ κΉλνκ³ ν¨μ¨μ μΈ κ΅¬μ± μ€μ μ μ μ§ν μ μμ΅λλ€.
Maven μ’ μμ± μΆκ°
Mavenμ νλ‘μ νΈ μ’ μμ±μ κ΄λ¦¬νμ¬ λΉλ λ° λ°νμ μ€μ νμν λΌμ΄λΈλ¬λ¦¬μ μ κ·Όν μ μλλ‘ ν©λλ€. Maven μ’ μμ±μ μ λ°μ΄νΈνλ κ²μ λ¬Έμ λ₯Ό ν΄κ²°νκ³ μλ‘μ΄ κΈ°λ₯μ ν΅ν©νλ λ° μ€μν©λλ€.
Maven μ’ μμ± μΆκ° λ¨κ³:
- pom.xml μ΄κΈ°:
- νλ‘μ νΈ λ£¨νΈμ μλ pom.xml νμΌμ μ°Ύκ³ μ½λλ€.
- νμν μ’
μμ± μΆκ°:
- μλ₯Ό λ€μ΄, jakarta.servlet.jspλ₯Ό ν΄κ²°νκΈ° μν΄ νμν μ’ μμ±μ ν¬ν¨ν©λλ€.
<dependencies> <!-- κΈ°μ‘΄ μ’ μμ± --> <!-- Jakarta Servlet μ’ μμ± μΆκ° --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency> <!-- JSP μ’ μμ± μΆκ° --> <dependency> <groupId>jakarta.servlet.jsp</groupId> <artifactId>jakarta.servlet.jsp-api</artifactId> <version>3.0.0</version> <scope>provided</scope> </dependency> </dependencies>
- Maven νλ‘μ νΈ μ
λ°μ΄νΈ:
- νλ‘μ νΈλ₯Ό λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμΌλ‘ ν΄λ¦ν©λλ€.
- Maven > Update Projectλ₯Ό μ νν©λλ€.
- μ’ μμ±μ΄ λ€μ΄λ‘λλκ³ ν΅ν©λμλμ§ νμΈν©λλ€.
- μ’
μμ± ν΄κ²° νμΈ:
- IDEκ° ν΄κ²°λμ§ μμ μ’ μμ±κ³Ό κ΄λ ¨λ κ²½κ³ λ₯Ό λ μ΄μ νμνμ§ μλμ§ νμΈν©λλ€.
Maven μ’ μμ±μ μ¬λ°λ₯΄κ² κ΄λ¦¬νλ©΄ νλ‘μ νΈκ° νμν λͺ¨λ λΌμ΄λΈλ¬λ¦¬μ μ κ·Όν μ μμ΄ μνν κ°λ° λ° λ°°ν¬κ° κ°λ₯ν©λλ€.
μ¬μ©μ μΆκ° κΈ°λ₯ ν μ€νΈ
μ ν리μΌμ΄μ μ€ν
컨νΈλ‘€λ¬, JSP μμ λ° κ΅¬μ±μ μ€μ ν ν, λͺ¨λ κ²μ΄ μμλλ‘ μλνλμ§ νμΈνκΈ° μν΄ κΈ°λ₯μ ν μ€νΈνλ κ²μ΄ μ€μν©λλ€.
μ ν리μΌμ΄μ μ€ν λ¨κ³:
- μΉ μλ² μμ:
- μ νΈνλ μλ²(μ: Apache Tomcat)μμ μ ν리μΌμ΄μ μ μ€νν©λλ€.
- μ ν리μΌμ΄μ
μ κ·Ό:
- μΉ λΈλΌμ°μ λ₯Ό μ΄κ³ http://localhost:8080/demoμ κ°μ μ ν리μΌμ΄μ URLλ‘ μ΄λν©λλ€.
- μ¬μ©μ μΆκ° νμ΄μ§λ‘ μ΄λ:
- ν€λμ “Add User” λ§ν¬λ₯Ό ν΄λ¦νμ¬ addUser.jspμ μ κ·Όν©λλ€.
- μμ μμ±:
- μ ν¨ν μ¬μ©μ μΈλΆ μ 보λ₯Ό μ λ ₯νκ³ μμμ μ μΆν©λλ€.
- μ μΆ νμΈ:
- μμ μ μΆμ΄ μ μ νκ² λ¦¬λλ μ λκ³ μ¬μ©μ λ°μ΄ν°κ° μ²λ¦¬λμλμ§ νμΈν©λλ€.
μΌλ°μ μΈ λ¬Έμ λλ²κΉ
κ°λ° μ€μ μμ μ μΆ μ€λ₯λ λλ½λ μ’ μμ±κ³Ό κ°μ λ¬Έμ κ° λ°μν μ μμ΅λλ€. μΌλ°μ μΈ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€:
- Username μ² μ μ€λ₯:
- μμμ΄ “username is incorrect spelling”κ³Ό κ°μ κ²½κ³ λ₯Ό νμνλ©΄ μ² μλ₯Ό νμΈνκ³ JSPμ 컨νΈλ‘€λ¬ κ°μ λ³μ μ΄λ¦ μΌκ΄μ±μ 보μ₯ν©λλ€.
- ν΄κ²°λμ§ μμ JSP νμ΄μ§:
- Jakarta.servlet.jsp not resolvedμ κ°μ μ€λ₯λ λλ½λ μ’ μμ±μ λνλ λλ€. Maven μ’ μμ±μ΄ μ¬λ°λ₯΄κ² μΆκ°λκ³ νλ‘μ νΈκ° μ λ°μ΄νΈλμλμ§ νμΈν©λλ€.
- μμ μ μΆ μ€ν¨:
- μμμ΄ μ¬λ°λ₯΄κ² μ μΆλμ§ μμΌλ©΄ μμ action URLμ νμΈνκ³ addUser λ©μλκ° SiteControllerμ μ¬λ°λ₯΄κ² 맀νλμλμ§ νμΈν©λλ€.
- μλ² μΆ©λ:
- μλ² μΆ©λμ μλͺ»λ ꡬμ±μ΄λ λλ½λ μ’ μμ±μΌλ‘ μΈν΄ λ°μν μ μμ΅λλ€. μ΅κ·Ό λ³κ²½ μ¬νμ κ²ν νκ³ μλ² λ‘κ·Έμμ μμΈν μ€λ₯ λ©μμ§λ₯Ό νμΈν©λλ€.
- ν€λμ λλ½λ λ§ν¬:
- ν€λμ λͺ¨λ λ΄λΉκ²μ΄μ λ§ν¬κ° κΈ°μ‘΄ 컨νΈλ‘€λ¬ λ©μλ λ° JSP νμ΄μ§λ₯Ό κ°λ¦¬ν€λμ§ νμΈν©λλ€.
μ΄λ¬ν λ¬Έμ λ₯Ό 체κ³μ μΌλ‘ ν΄κ²°ν¨μΌλ‘μ¨ μνν κ°λ° κ²½νκ³Ό κΈ°λ₯μ μΈ μ¬μ©μ μΆκ° κΈ°λ₯μ μ μ§ν μ μμ΅λλ€.
κ²°λ‘
JSP μμμ μ¬μ©νμ¬ Java μΉ μ ν리μΌμ΄μ μ μ¬μ©μλ₯Ό μΆκ°νλ κ²μ 컨νΈλ‘€λ¬ μ€μ λΆν° JSP νμ΄μ§ κ΅¬μ± λ° μ’ μμ± κ΄λ¦¬μ μ΄λ₯΄κΈ°κΉμ§ μΌλ ¨μ 체κ³μ μΈ λ¨κ³λ₯Ό ν¬ν¨ν©λλ€. MVC μν€ν μ²λ₯Ό μ€μνκ³ μ΄λ Έν μ΄μ λ° Maven μ’ μμ± κ΄λ¦¬μ κ°μ νλ Java κ΄νμ νμ©ν¨μΌλ‘μ¨ κ°λ°μλ μ‘°μ§μ μ΄κ³ μ μ§ κ΄λ¦¬κ° μ©μ΄νλ©° νμ₯ κ°λ₯ν μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€.
μ£Όμ μμ :
- μ‘°μ§λ 컨νΈλ‘€λ¬: μ ν리μΌμ΄μ μ νΉμ μΈ‘λ©΄μ μ²λ¦¬νλ λ³λμ 컨νΈλ‘€λ¬κ° λͺ νμ±μ ν₯μμν΅λλ€.
- νλμ ꡬμ±: XMLλ³΄λ€ μ΄λ Έν μ΄μ μ μ¬μ©νμ¬ κ°μνλ ꡬμ±μ ꡬνν©λλ€.
- JSP μμ: μ¬μ©μ μνΈ μμ©μ μν μ μ© JSP νμ΄μ§λ₯Ό μμ±νμ¬ μνν μ¬μ©μ κ²½νμ 보μ₯ν©λλ€.
- μ’ μμ± κ΄λ¦¬: Maven μ’ μμ±μ μ¬λ°λ₯΄κ² κ΄λ¦¬νμ¬ μΆ©λκ³Ό ν΄κ²°λμ§ μμ μ°Έμ‘°λ₯Ό λ°©μ§ν©λλ€.
- ν μ€νΈ λ° λλ²κΉ : κΈ°λ₯μ μ κΈ°μ μΌλ‘ ν μ€νΈνκ³ λ¬Έμ λ₯Ό μ μνκ² ν΄κ²°νμ¬ μ ν리μΌμ΄μ μ 무결μ±μ μ μ§ν©λλ€.
μ΄λ¬ν κ΄νμ μμ©ν¨μΌλ‘μ¨ κ°λ° νλ‘μΈμ€κ° λ¨μνλ λΏλ§ μλλΌ ν₯ν κ°μ μ μν κ²¬κ³ ν κΈ°λ°μ λ§λ ¨ν μ μμ΅λλ€.
SEO ν€μλ: Java μΉ μ ν리μΌμ΄μ , JSP μμ, λ°μ΄ν°λ² μ΄μ€μ μ¬μ©μ μΆκ°, MVC μν€ν μ², Javaμ 컨νΈλ‘€λ¬, μ΄λ Έν μ΄μ , Maven μ’ μμ±, web.xml ꡬμ±, SiteController, addUser.jsp, μλΈλ¦Ώ 맀ν, Jakarta Servlet API, μμ μ μΆ, μ¬μ©μ μΆκ° κΈ°λ₯.
μΆκ° μλ£
- 곡μ Jakarta Servlet λ¬Έμ
- JavaServer Pages (JSP) νν 리μΌ
- Maven μ’ μμ± κ΄λ¦¬
- MVC μν€ν μ² μ΄ν΄
- Java μλΈλ¦Ώμμ μ΄λ Έν μ΄μ μ¬μ©
- Java μΉ μ ν리μΌμ΄μ λλ²κΉ
μ΄ μλ£λ₯Ό νμ©νμ¬ μ΄ν΄λλ₯Ό λμ± κΉκ² νκ³ Java μΉ κ°λ° κΈ°μ μ ν₯μμν¬ μ μμ΅λλ€.
μ°Έκ³ : μ΄ κΈ°μ¬λ AIμ μν΄ μμ±λμμ΅λλ€.
“`