โจ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ
JDK(Java Development Kit) : ์๋ฐ ๊ฐ๋ฐ ๋๊ตฌ
ํฐ์บฃ(Apache Tomcat) : ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS)
์ดํด๋ฆฝ์ค(Eclipse) : ์ฝ๋ฉ๊ณผ ์ปดํ์ผ ํจ๊ป ํ ์ ์๋ ์ข ํฉ ๊ฐ๋ฐ ํด(IDE)
1. ์น ์๋ฒ
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์ผ๋ฉด ํด๋น ์ฒ๋ฆฌ๋ฅผ ํด์ ๊ฒฐ๊ณผํ์ด์ง๋ฅผ ์๋ตํ๋๋ก ๊ตฌ์ฑ๋ ์๋ฒ
2. WAS
- ์น ์๋ฒ๋ง์ผ๋ก๋ DB์ ์ฐ๋ํ์ฌ ์ฒ๋ฆฌํด์ผ ํ๋ ๋์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ DBMS์ ์น์๋ฒ ์ฌ์ด์์ ์ ์ดํด์ฃผ๋ ํ๋ก๊ทธ๋จ
3. JSP
- [Dynamic Web Project] => [Web Project] => [New->JSP File]
- Java Server Page์ ์ฝ์, ์๋ฐ๋ก ์๋ฒ ํ์ด์ง ์์ฑํ๊ธฐ ์ํ ์ธ์ด
- HTML๊ณผ JSP ํ๊ทธ(์คํฌ๋ฆฝํธ๋ฆฟ)์ผ๋ก ๊ตฌ์ฑ๋์ด ํ๋ฉด์ ์์ฑํ๋๋ฐ ์ ๋ฆฌํจ.
- ์๋ฐ ์ฝ๋ ์ฐ๋ ค๋ฉด ์คํฌ๋ฆฝํธ๋ฆฟ<% %> ์์ ์จ ์ฃผ์ด์ผ ํจ
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>Addition</title>
</head>
<body>
<%
int num1 = 20;
int num2 = 10;
int add = num1 + num2;
%>
<%=num1%>+<%=num2%>=<%=add%>
</body>
</html>
*JSP ๊ธฐ๋ณธํ๊ทธ
์ข ๋ฅ | ์ฌ์ฉ์ฉ๋ | ํ์ |
์คํฌ๋ฆฝํธ๋ฆฟ(scriptlet) | ์๋ฐ ์ฝ๋ ๊ธฐ์ | <% %> |
์ ์ธ๋ฌธ(declaration) | ๋ณ์, ๋ฉ์๋ ์ ์ธ | <%! %> |
ํํ์(expression) | ๊ณ์ฐ์, ํจ์ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฌธ์์ด ํํ๋ก ์ถ๋ ฅ | <%= %> |
์ฃผ์(Comment) | JSP ํ์ด์ง์ ์ค๋ช ๋ฃ๊ธฐ | <%-- --%> |
์ง์์(Directive) | JSP ํ์ด์ง ์์ฑ์ ์ง์ | <%@ %> |
*์ง์์ ์ข ๋ฅ
์ข ๋ฅ | ์ฌ์ฉ ์ฉ๋ |
page | ํด๋น JSP ํ์ด์ง ์ ๋ฐ์ ์ผ๋ก ํ๊ฒฝ ์ค์ ํ ๋ด์ฉ ์ง์ |
include | ํ์ฌ ํ์ด์ง์ ๋ค๋ฅธ ํ์ผ์ ๋ด์ฉ์ ์ฝ์ |
taglib | ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํ๊ทธ๋ฅผ ๊บผ๋ด์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ ์ ๊ณต |
4. ์๋ธ๋ฆฟ
- ์๋ฐ ํด๋์ค ํํ์ ์น ์ ํ๋ฆฌ์ผ์ด์
- javax.servlet.http Package ์ HttpServlet ํด๋์ค ์์๋ฐ์ ๊ตฌํํ ์๋ธ ํด๋์ค
- ์ถ๋ ฅ์คํธ๋ฆผ ํตํด HTML์ ๋ฌธ์์ด ํํ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ก
- ์๋ธ๋ฆฟ์ ์๋ฐ ์ฝ๋ ๋ด๋ถ์ HTML ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ ๊ตฌ์กฐ <-> JSP๋ ๊ทธ ๋ฐ๋
- ๋ณต์กํ ๋ก์ง์ ์๋ธ๋ฆฟ์ ๊ธฐ์ ๊ฒฐ๊ณผ๋ง์ JSP ํ์ด์ง๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์ ๊ณตํ๋ ํํ๋ก ๊ฐ๋ฐ
- URL Mapping : /hello (URL ๋งคํํ๋ ์ด์ ๋ ์ค์ ์๋ธ๋ฆฟ ํด๋์ค ๊ณต๊ฐํ์ง ์๊ธฐ ์ํด์)
- ContextPath : server.xml ํ์ผ์ <Context> ํ๊ทธ์ ์ถ๊ฐ path="/web-study-02")
- ์๋ธ๋ฆฟ ์์ฒญ ์ํ URL
http://localhost:8181/web-study-02/hello
[unit03\AdditionServlet03.java]
package unit02;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/AdditionServlet03")
public class AdditionServlet03 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int num1 = 20;
int num2 = 10;
int add = num1 + num2;
request.setAttribute("num1", num1);
request.setAttribute("num2", num2);
request.setAttribute("add", add);
RequestDispatcher dispatcher
= request.getRequestDispatcher("addition03.jsp");
dispatcher.forward(request, response);
}
}
[addition03.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>Addition</title>
</head>
<body>
${num1}+${num2}=${add}
</body>
</html>
๐ป ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ด๋ป๊ฒ ์์ฒญํ๋๊ฐ?
1. ์ ์ก๋ฐฉ์
- form ํ๊ทธ ํตํด์ ์๋ฒ์ ๋ฌด์์ธ๊ฐ ์ ๋ฌํ๊ฑฐ๋ ์์ฒญํจ
- get ๋ฐฉ์ : ์ฃผ์ ์ฐฝ์ ํ๊ณ ๋์ด๊ฐ. ๋ณด์์ ์ทจ์ฝ. 255์ ์ดํ ์ ์ ์์ ๋ฐ์ดํฐ ์ ์ก(๊ธฐ๋ณธ)
- post ๋ฐฉ์ : html header ํ๊ณ ๋์ด๊ฐ. ๋์ฉ๋ ๋ฐ์ดํฐ ์ ์ก
- actionํ๊ทธ์ ์์ฒญํ ์๋ธ๋ฆฟ ์ด๋ฆ, ์ ์ก๋ฒํผ์ inputํ๊ทธ ์์ฑ๊ฐ์ submit์ผ๋ก ์ง์ ํด์ผ ํจ
- form ํ๊ทธ์ method ์์ฑ๊ฐ์ผ๋ก get => doGet() ๋ฉ์๋ ํธ์ถ, post => doPost() ํธ์ถ
- a ํ๊ทธ๋ก ๋งํฌ ๊ฑธ์ด์ฃผ๋ฉด ์๋ธ๋ฆฟ์ get ๋ฐฉ์์ผ๋ก ์์ฒญํ ๊ฒ์ผ๋ก ๋ด.
<form method="get" action="CallServlet">
<input type="submit" value="์ ์ก">
</form>
<a href="CallServlet"> get ๋ฐฉ์์ผ๋ก ๋ด </a>
2. ์๋ธ๋ฆฟ ๋์ ์๋ฆฌ
Browser โ๏ธ Web Server in WAS โ๏ธ Servlet Container โ๏ธ Thread โ๏ธ Servlet ๊ฐ์ฒด
Instance ์์ฑ : init() -> doGet() or doPost() -> destroy()


* JSP๊ฐ Servlet ์ปจํ ์ด๋์์ ๋์ํ๋ ์์
- ๋ธ๋ผ์ฐ์ ์์ JSP ํ์ด์ง("myCount.jsp")๋ฅผ ์น ์๋ฒ์์ธ ์์ฒญ
- ์น ์๋ฒ๋ JSP์ ๋ํ ์์ฒญ์ ์๋ธ๋ฆฟ ์ปจํ ์ด๋์๊ฒ ๋๊น
- ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ ํด๋น JSP ์ฐพ์์ ์๋ธ๋ฆฟํ์ผ(myCount_jsp.java) ์์ฑ
- ์๋ธ๋ฆฟ ํ์ผ์ ์ปดํ์ผ ๋์ด ์คํ๊ฐ๋ฅํ ์ํ์ ์๋ธ๋ฆฟ ํด๋์ค ํ์ผ(myCount_jsp.class)๋ก ์์ฑ๋๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ
- ์๋ธ๋ฆฟ ์ํ ๊ฒฐ๊ณผ๊ฐ ์น ์๋ฒ์ ์ ์ก
- ์ฌ์ฉ์๋ ์๋ธ๋ฆฟ ์ถ๋ ฅ ๊ฒฐ๊ณผ์ธ HTML ํํ๋ก ์๋ต ๋ฐ์
3. ์๋ธ๋ฆฟ ์ธ์ฝ๋ฉ
- ์๋ธ๋ฆฟ์์ ์๋ต์ ํ๊ธ ์ฒ๋ฆฌ(์ถ๋ ฅ์)
response.setContentType("text/html; charset=UTF-8");
- ์ ๋ ฅ ๋ฐ๋ ๊ณผ์ ์์๋ ๋ณ๋์ ์ฒ๋ฆฌ ์ ํ๋ฉด ํ๊ธ ๊นจ์ง
- ์๋ฒ์ค์ ํ์ผ server.xml ์์ ์ฒซ๋ฒ์งธ <Connector> ํ๊ทธ์ URIEncoding="UTF-8" ์์ฑ ์ถ๊ฐ
4. ์ฟผ๋ฆฌ ์คํธ๋ง
- ์๋ธ๋ฆฟ ํด๋์ค์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ์ด๋ป๊ฒ ์ป์ด ์ค๋๊ฐ?
- ์๋ฒ์์ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ์ป์ด์ค๊ธฐ ์ํด ์ฟผ๋ฆฌ์คํธ๋ง(Query String) ์ฌ์ฉ
- ์ฟผ๋ฆฌ์คํธ๋ง์ get๋ฐฉ์์ผ๋ก ์์ฒญ์ URL ์ฃผ์ ๋ค์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ผ๋ก "๋ฆฌ์์ค?์ด๋ฆ=๊ฐ" ํ์

5. ์์ฒญ๊ฐ์ฒด(request)์ ํ๋ผ๋ฏธํฐ(getParameter)
- input ํ๊ทธ์ name ์์ฑ๊ฐ์ด getParameter()์ ๋งค๊ฐ๋ณ์
- getParameter()๋ ํ๋ผ๋ฏธํฐ ๊ฐ์ ํญ์ String ํํ๋ก ์ป์ด์ด => ๊ณ์ฐ์ ์ฐ๋ ค๋ฉด ํ๋ณํ ํ์
<input type="text" name="id">
String id = req.getParameter("id");
int age = Integer.parseInt(request.getParameter("age"));
- ๊ฐ์ name ๊ฐ ์ฌ๋ฌ๊ฐ ์ป์ด์ค๋ ค๋ฉด? getParameterValues()
<form action="process.jsp" method="post">
<input type="checkbox" name="fruits" value="apple"> Apple<br>
<input type="checkbox" name="fruits" value="banana"> Banana<br>
<input type="checkbox" name="fruits" value="orange"> Orange<br>
<input type="submit" value="Submit">
</form>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Selected Fruits</title>
</head>
<body>
<%
// fruits๋ผ๋ ์ด๋ฆ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐฐ์ด๋ก ๊ฐ์ ธ์ด
String[] selectedFruits = request.getParameterValues("fruits");
// ์ ํ๋ ๊ณผ์ผ ์ถ๋ ฅ
if (selectedFruits != null) {
out.println("<h2>Selected Fruits:</h2>");
for (String fruit : selectedFruits) {
out.println("<p>" + fruit + "</p>");
}
} else {
out.println("<p>No fruits selected.</p>");
}
%>
</body>
</html>
6. ์ ํจ์ฑ ์ฒดํฌ(์๋ฐ์คํฌ๋ฆฝํธ)
- ์ฌ์ฉ์๊ฐ ํผ์ ์ ๋ ฅํ ๋ฐ์ดํฐ๊ฐ ์ ํจํด์ผ๋ง ์๋ฒ์์ ์ ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ์) ์์ด๋&๋์ด๋ ๋ฐ๋์ ์ ๋ ฅ๋์ด์ผ ํ๊ณ ๋์ด๋ ์์น๋ฐ์ดํฐ๋ง ์ ๋ ฅ๊ฐ๋ฅํ๋๋ก ์ฒดํฌ
- ์๋ฒ๋ก ๋ณด๋ด๊ธฐ ์ ์ ์ ๋ ฅํ ๋ฐ์ดํฐ๊ฐ ์ ํจํ์ง ํ๋จ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ง ๊ฐ๋ฅ(js ํ์ฅ์)
- JSP ํ์ผ์ <head>์์ญ์ <script>ํ๊ทธ ์ถ๊ฐ
<script type="text/javascript" src="param.js"></script>
'ํ๋ก๊ทธ๋๋ฐ์ธ์ด > Spring&JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โจ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ
JDK(Java Development Kit) : ์๋ฐ ๊ฐ๋ฐ ๋๊ตฌ
ํฐ์บฃ(Apache Tomcat) : ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS)
์ดํด๋ฆฝ์ค(Eclipse) : ์ฝ๋ฉ๊ณผ ์ปดํ์ผ ํจ๊ป ํ ์ ์๋ ์ข ํฉ ๊ฐ๋ฐ ํด(IDE)
1. ์น ์๋ฒ
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์ผ๋ฉด ํด๋น ์ฒ๋ฆฌ๋ฅผ ํด์ ๊ฒฐ๊ณผํ์ด์ง๋ฅผ ์๋ตํ๋๋ก ๊ตฌ์ฑ๋ ์๋ฒ
2. WAS
- ์น ์๋ฒ๋ง์ผ๋ก๋ DB์ ์ฐ๋ํ์ฌ ์ฒ๋ฆฌํด์ผ ํ๋ ๋์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ DBMS์ ์น์๋ฒ ์ฌ์ด์์ ์ ์ดํด์ฃผ๋ ํ๋ก๊ทธ๋จ
3. JSP
- [Dynamic Web Project] => [Web Project] => [New->JSP File]
- Java Server Page์ ์ฝ์, ์๋ฐ๋ก ์๋ฒ ํ์ด์ง ์์ฑํ๊ธฐ ์ํ ์ธ์ด
- HTML๊ณผ JSP ํ๊ทธ(์คํฌ๋ฆฝํธ๋ฆฟ)์ผ๋ก ๊ตฌ์ฑ๋์ด ํ๋ฉด์ ์์ฑํ๋๋ฐ ์ ๋ฆฌํจ.
- ์๋ฐ ์ฝ๋ ์ฐ๋ ค๋ฉด ์คํฌ๋ฆฝํธ๋ฆฟ<% %> ์์ ์จ ์ฃผ์ด์ผ ํจ
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Addition</title> </head> <body> <% int num1 = 20; int num2 = 10; int add = num1 + num2; %> <%=num1%>+<%=num2%>=<%=add%> </body> </html>
*JSP ๊ธฐ๋ณธํ๊ทธ
์ข ๋ฅ | ์ฌ์ฉ์ฉ๋ | ํ์ |
์คํฌ๋ฆฝํธ๋ฆฟ(scriptlet) | ์๋ฐ ์ฝ๋ ๊ธฐ์ | <% %> |
์ ์ธ๋ฌธ(declaration) | ๋ณ์, ๋ฉ์๋ ์ ์ธ | <%! %> |
ํํ์(expression) | ๊ณ์ฐ์, ํจ์ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฌธ์์ด ํํ๋ก ์ถ๋ ฅ | <%= %> |
์ฃผ์(Comment) | JSP ํ์ด์ง์ ์ค๋ช ๋ฃ๊ธฐ | <%-- --%> |
์ง์์(Directive) | JSP ํ์ด์ง ์์ฑ์ ์ง์ | <%@ %> |
*์ง์์ ์ข ๋ฅ
์ข ๋ฅ | ์ฌ์ฉ ์ฉ๋ |
page | ํด๋น JSP ํ์ด์ง ์ ๋ฐ์ ์ผ๋ก ํ๊ฒฝ ์ค์ ํ ๋ด์ฉ ์ง์ |
include | ํ์ฌ ํ์ด์ง์ ๋ค๋ฅธ ํ์ผ์ ๋ด์ฉ์ ์ฝ์ |
taglib | ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํ๊ทธ๋ฅผ ๊บผ๋ด์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ ์ ๊ณต |
4. ์๋ธ๋ฆฟ
- ์๋ฐ ํด๋์ค ํํ์ ์น ์ ํ๋ฆฌ์ผ์ด์
- javax.servlet.http Package ์ HttpServlet ํด๋์ค ์์๋ฐ์ ๊ตฌํํ ์๋ธ ํด๋์ค
- ์ถ๋ ฅ์คํธ๋ฆผ ํตํด HTML์ ๋ฌธ์์ด ํํ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ก
- ์๋ธ๋ฆฟ์ ์๋ฐ ์ฝ๋ ๋ด๋ถ์ HTML ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ ๊ตฌ์กฐ <-> JSP๋ ๊ทธ ๋ฐ๋
- ๋ณต์กํ ๋ก์ง์ ์๋ธ๋ฆฟ์ ๊ธฐ์ ๊ฒฐ๊ณผ๋ง์ JSP ํ์ด์ง๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์ ๊ณตํ๋ ํํ๋ก ๊ฐ๋ฐ
- URL Mapping : /hello (URL ๋งคํํ๋ ์ด์ ๋ ์ค์ ์๋ธ๋ฆฟ ํด๋์ค ๊ณต๊ฐํ์ง ์๊ธฐ ์ํด์)
- ContextPath : server.xml ํ์ผ์ <Context> ํ๊ทธ์ ์ถ๊ฐ path="/web-study-02")
- ์๋ธ๋ฆฟ ์์ฒญ ์ํ URL
http://localhost:8181/web-study-02/hello
[unit03\AdditionServlet03.java]
package unit02; import java.io.IOException; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; @WebServlet("/AdditionServlet03") public class AdditionServlet03 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int num1 = 20; int num2 = 10; int add = num1 + num2; request.setAttribute("num1", num1); request.setAttribute("num2", num2); request.setAttribute("add", add); RequestDispatcher dispatcher = request.getRequestDispatcher("addition03.jsp"); dispatcher.forward(request, response); } }
[addition03.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Addition</title> </head> <body> ${num1}+${num2}=${add} </body> </html>
๐ป ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ด๋ป๊ฒ ์์ฒญํ๋๊ฐ?
1. ์ ์ก๋ฐฉ์
- form ํ๊ทธ ํตํด์ ์๋ฒ์ ๋ฌด์์ธ๊ฐ ์ ๋ฌํ๊ฑฐ๋ ์์ฒญํจ
- get ๋ฐฉ์ : ์ฃผ์ ์ฐฝ์ ํ๊ณ ๋์ด๊ฐ. ๋ณด์์ ์ทจ์ฝ. 255์ ์ดํ ์ ์ ์์ ๋ฐ์ดํฐ ์ ์ก(๊ธฐ๋ณธ)
- post ๋ฐฉ์ : html header ํ๊ณ ๋์ด๊ฐ. ๋์ฉ๋ ๋ฐ์ดํฐ ์ ์ก
- actionํ๊ทธ์ ์์ฒญํ ์๋ธ๋ฆฟ ์ด๋ฆ, ์ ์ก๋ฒํผ์ inputํ๊ทธ ์์ฑ๊ฐ์ submit์ผ๋ก ์ง์ ํด์ผ ํจ
- form ํ๊ทธ์ method ์์ฑ๊ฐ์ผ๋ก get => doGet() ๋ฉ์๋ ํธ์ถ, post => doPost() ํธ์ถ
- a ํ๊ทธ๋ก ๋งํฌ ๊ฑธ์ด์ฃผ๋ฉด ์๋ธ๋ฆฟ์ get ๋ฐฉ์์ผ๋ก ์์ฒญํ ๊ฒ์ผ๋ก ๋ด.
<form method="get" action="CallServlet"> <input type="submit" value="์ ์ก"> </form>
<a href="CallServlet"> get ๋ฐฉ์์ผ๋ก ๋ด </a>
2. ์๋ธ๋ฆฟ ๋์ ์๋ฆฌ
Browser โ๏ธ Web Server in WAS โ๏ธ Servlet Container โ๏ธ Thread โ๏ธ Servlet ๊ฐ์ฒด
Instance ์์ฑ : init() -> doGet() or doPost() -> destroy()


* JSP๊ฐ Servlet ์ปจํ ์ด๋์์ ๋์ํ๋ ์์
- ๋ธ๋ผ์ฐ์ ์์ JSP ํ์ด์ง("myCount.jsp")๋ฅผ ์น ์๋ฒ์์ธ ์์ฒญ
- ์น ์๋ฒ๋ JSP์ ๋ํ ์์ฒญ์ ์๋ธ๋ฆฟ ์ปจํ ์ด๋์๊ฒ ๋๊น
- ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ ํด๋น JSP ์ฐพ์์ ์๋ธ๋ฆฟํ์ผ(myCount_jsp.java) ์์ฑ
- ์๋ธ๋ฆฟ ํ์ผ์ ์ปดํ์ผ ๋์ด ์คํ๊ฐ๋ฅํ ์ํ์ ์๋ธ๋ฆฟ ํด๋์ค ํ์ผ(myCount_jsp.class)๋ก ์์ฑ๋๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ
- ์๋ธ๋ฆฟ ์ํ ๊ฒฐ๊ณผ๊ฐ ์น ์๋ฒ์ ์ ์ก
- ์ฌ์ฉ์๋ ์๋ธ๋ฆฟ ์ถ๋ ฅ ๊ฒฐ๊ณผ์ธ HTML ํํ๋ก ์๋ต ๋ฐ์
3. ์๋ธ๋ฆฟ ์ธ์ฝ๋ฉ
- ์๋ธ๋ฆฟ์์ ์๋ต์ ํ๊ธ ์ฒ๋ฆฌ(์ถ๋ ฅ์)
response.setContentType("text/html; charset=UTF-8");
- ์ ๋ ฅ ๋ฐ๋ ๊ณผ์ ์์๋ ๋ณ๋์ ์ฒ๋ฆฌ ์ ํ๋ฉด ํ๊ธ ๊นจ์ง
- ์๋ฒ์ค์ ํ์ผ server.xml ์์ ์ฒซ๋ฒ์งธ <Connector> ํ๊ทธ์ URIEncoding="UTF-8" ์์ฑ ์ถ๊ฐ
4. ์ฟผ๋ฆฌ ์คํธ๋ง
- ์๋ธ๋ฆฟ ํด๋์ค์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ์ด๋ป๊ฒ ์ป์ด ์ค๋๊ฐ?
- ์๋ฒ์์ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ์ป์ด์ค๊ธฐ ์ํด ์ฟผ๋ฆฌ์คํธ๋ง(Query String) ์ฌ์ฉ
- ์ฟผ๋ฆฌ์คํธ๋ง์ get๋ฐฉ์์ผ๋ก ์์ฒญ์ URL ์ฃผ์ ๋ค์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ผ๋ก "๋ฆฌ์์ค?์ด๋ฆ=๊ฐ" ํ์

5. ์์ฒญ๊ฐ์ฒด(request)์ ํ๋ผ๋ฏธํฐ(getParameter)
- input ํ๊ทธ์ name ์์ฑ๊ฐ์ด getParameter()์ ๋งค๊ฐ๋ณ์
- getParameter()๋ ํ๋ผ๋ฏธํฐ ๊ฐ์ ํญ์ String ํํ๋ก ์ป์ด์ด => ๊ณ์ฐ์ ์ฐ๋ ค๋ฉด ํ๋ณํ ํ์
<input type="text" name="id">
String id = req.getParameter("id");
int age = Integer.parseInt(request.getParameter("age"));
- ๊ฐ์ name ๊ฐ ์ฌ๋ฌ๊ฐ ์ป์ด์ค๋ ค๋ฉด? getParameterValues()
<form action="process.jsp" method="post"> <input type="checkbox" name="fruits" value="apple"> Apple<br> <input type="checkbox" name="fruits" value="banana"> Banana<br> <input type="checkbox" name="fruits" value="orange"> Orange<br> <input type="submit" value="Submit"> </form>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Selected Fruits</title> </head> <body> <% // fruits๋ผ๋ ์ด๋ฆ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐฐ์ด๋ก ๊ฐ์ ธ์ด String[] selectedFruits = request.getParameterValues("fruits"); // ์ ํ๋ ๊ณผ์ผ ์ถ๋ ฅ if (selectedFruits != null) { out.println("<h2>Selected Fruits:</h2>"); for (String fruit : selectedFruits) { out.println("<p>" + fruit + "</p>"); } } else { out.println("<p>No fruits selected.</p>"); } %> </body> </html>
6. ์ ํจ์ฑ ์ฒดํฌ(์๋ฐ์คํฌ๋ฆฝํธ)
- ์ฌ์ฉ์๊ฐ ํผ์ ์ ๋ ฅํ ๋ฐ์ดํฐ๊ฐ ์ ํจํด์ผ๋ง ์๋ฒ์์ ์ ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ์) ์์ด๋&๋์ด๋ ๋ฐ๋์ ์ ๋ ฅ๋์ด์ผ ํ๊ณ ๋์ด๋ ์์น๋ฐ์ดํฐ๋ง ์ ๋ ฅ๊ฐ๋ฅํ๋๋ก ์ฒดํฌ
- ์๋ฒ๋ก ๋ณด๋ด๊ธฐ ์ ์ ์ ๋ ฅํ ๋ฐ์ดํฐ๊ฐ ์ ํจํ์ง ํ๋จ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ง ๊ฐ๋ฅ(js ํ์ฅ์)
- JSP ํ์ผ์ <head>์์ญ์ <script>ํ๊ทธ ์ถ๊ฐ
<script type="text/javascript" src="param.js"></script>