


1. ๋ฐ์ดํฐ ์ ์ก ๊ท์น 3๊ฐ์ง
1-1. ์ด๋๋ก (form ํ๊ทธ์ action ์์ฑ)
- ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ชฉ์ ์ง(servlet)๋ฅผ ์ง์ ํ๋ค.
- action ์์ฑ์ ์๋ธ๋ฆฟ URL ํจํด์ ์์ฑํ๋ค.
<form action="/MyServlet" method="post">
์ฌ๊ธฐ์ /MyServlet์ ์๋ธ๋ฆฟ์ URL ๋งคํ ๊ฐ์ด๋ค. ์๋ธ๋ฆฟ์ URL์ @WebServlet์ด๋ web.xml์์ ์ค์ ๋๋ค.
web.xml ๊ฒฝ๋ก
WebContent/WEB-INF/web.xml ๋๋ src/main/webapp/WEB-INF/web.xml (ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์)
1-2. ์ด๋ค ๊ฐ์ (input ํ๊ทธ์ name)
- input ํ๊ทธ์ name ์์ฑ์ ์ถ๊ฐํ์ฌ ์๋ฒ๋ก ์ ์กํ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ๋ค.
- ์๋ฒ์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๊ธฐ ์ํด name ์์ฑ์ด ํ์ํ ๊ฒ.
<input type="text" name="username" placeholder="Enter your name">
<input type="password" name="password" placeholder="Enter your password">
- Servlet ์์ ๊ฐ์ ๋ฐ๋ ๋ฐฉ๋ฒ
String username = request.getParameter("username");
String password = request.getParameter("password");
-3. ์ธ์ (submit)
- submit ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์ ์ก
- form์ ์
๋ ฅ๋ ๊ฐ์ด ์ง์ ๋ action URL๋ก ์ ์ก๋๋ค.
<button type="submit">Submit</button>
2. ์ค์ต
2-1. ์ค๋์ ์ฌ์?


datasend.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- html/jsp ์์ Servlet์ผ๋ก ๋ฐ์ดํฐ ์ ์ก ๊ท์น 3๊ฐ์ง
(1) ์ด๋๋ก ๋ณด๋ด? : form ํ๊ทธ์ action์
(2) ์ด๋ค๊ฐ์ ๋ณด๋ด? : inputํ๊ทธ์ name์
(3) ์ธ์ ๋ณด๋ด? : submint ๋ฒํผ
-->
<form action="DataSend">
์ง๋ฌธ :
<input type="text" name="data" id="" value="">
<input type="submit" value="์ง๋ฌธํ๊ธฐ">
</form>
</body>
</html>
ex01DataSend.java
package ex0127;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class DataSend
*/
@WebServlet("/DataSend")
public class ex01DataSend extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset= UTF-8");
// 1. ์์ฒญ๋ฐ์ ๋ฐ์ดํฐ ๊บผ๋ด์ค๊ธฐ
String data = request.getParameter("data");
// 2. ์์ฒญ๋ฐ์ ๋ฐ์ดํฐ ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ
PrintWriter out= response.getWriter();
out.print("<h1>"+data+"</h1>");
out.print("<br>");
out.print("์ค๋ ์ ์ฌ์ ์ ๋ณตํด๋ฌผ์งฌ๋ฝ์
๋๋ค");
}
}
2-1. 2๊ฐ์ ์ ์ ์ ๋ ฅ ๋ฐ์ ๋ง์ ์ ์ถ๋ ฅ

์๋ธ๋ฆฟ์ ํฐ์บฃ์์ ์ ๋์๊ฐ๋๋ฐ html ๋ง ์คํ์ด ์ ๋๋ ๋ฌธ์

html ํ์ผ ๊ฒฝ๋ก๊ฐ ์๋ชป๋์๊ธฐ ๋๋ฌธ์ 404์๋ฌ๊ฐ ๋ฌ ๊ฒ์ด์๋ค.

HTML ํ์ผ์ด WEB-INF ํด๋ ์์ ์๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผํ ์ ์๋ค.
WEB-INF ๋ด๋ถ ํ์ผ์ ๋ณดํธ๋๊ธฐ ๋๋ฌธ์ ์ง์ URL๋ก ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ webapp ํ์์ ๋ค์ด๊ฐ์ผ ํ๋ค.

์๋์ฒ๋ผ ๋ฐ๊พธ๋๊น ์๋ ์ ๋จ
plusop.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Plusop">
<input type="text" name="num1">
+
<input type="text" name="num2">
<input type="submit">
</form>
</body>
</html>
ex02Plus.java
package ex0127;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ex02Plus
*/
@WebServlet("/Plusop")
public class ex02Plus extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ํ๊ธ์ฌ์ฉ ํ๊ธฐ์ํด UTF-8
response.setContentType("text/html; charset= UTF-8");
// html์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ request๋ฅผ ํตํด์ ์๋ฃํ ๋ฐ์ดํฐ๋ก ๋ฐ๋๋ค!
String num1 = request.getParameter("num1");
String num2 = request.getParameter("num2");
// ์๋ฃํ๋ฐ์ดํฐ๋ intํ์ผ๋ก ๋ณํํ์ฌ์ผ ๊ณ์ฐ ๊ฐ๋ฅ
int number1 = Integer.parseInt(num1);
int number2 = Integer.parseInt(num2);
// response๋ฅผ ํตํด์ ์ถ๋ ฅ ๊ฐ์ฒด๋ฅผ ์์ฑ
PrintWriter out = response.getWriter();
// request์ ๋ํ response๋ฅผ html๋ก ์ถ๋ ฅ
out.print(number1 + " + " + number2 + " = " + (number1 + number2));
}
}

2-3. ๋ฐฉ ๋ง๋ค๊ธฐ (ํ)

ex03makeTable.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="MakeTable">
๋ช ๊ฐ์ ๋ฐฉ์ ๋ง๋ค๊น์?
<input type="text" name="num">
<input type="submit" value="SEND">
</form>
</body>
</html>
ex03MakeTable.java
package ex0127;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ex03MakeTable
*/
@WebServlet("/MakeTable")
public class ex03MakeTable extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset= UTF-8");
String num = request.getParameter("num");
int number = Integer.parseInt(num);
PrintWriter out = response.getWriter();
out.print("<table border = '1'>");
out.print("<tr>");
for (int i = 1; i < number + 1; i++) {
out.print("<td>" + i + "</td>");
}
out.print("</tr>");
out.print("</table>");
}
}


'ํ๋ก๊ทธ๋๋ฐ์ธ์ด > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ



1. ๋ฐ์ดํฐ ์ ์ก ๊ท์น 3๊ฐ์ง
1-1. ์ด๋๋ก (form ํ๊ทธ์ action ์์ฑ)
- ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ชฉ์ ์ง(servlet)๋ฅผ ์ง์ ํ๋ค.
- action ์์ฑ์ ์๋ธ๋ฆฟ URL ํจํด์ ์์ฑํ๋ค.
<form action="/MyServlet" method="post">
์ฌ๊ธฐ์ /MyServlet์ ์๋ธ๋ฆฟ์ URL ๋งคํ ๊ฐ์ด๋ค. ์๋ธ๋ฆฟ์ URL์ @WebServlet์ด๋ web.xml์์ ์ค์ ๋๋ค.
web.xml ๊ฒฝ๋ก
WebContent/WEB-INF/web.xml ๋๋ src/main/webapp/WEB-INF/web.xml (ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์)
1-2. ์ด๋ค ๊ฐ์ (input ํ๊ทธ์ name)
- input ํ๊ทธ์ name ์์ฑ์ ์ถ๊ฐํ์ฌ ์๋ฒ๋ก ์ ์กํ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ๋ค.
- ์๋ฒ์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๊ธฐ ์ํด name ์์ฑ์ด ํ์ํ ๊ฒ.
<input type="text" name="username" placeholder="Enter your name"> <input type="password" name="password" placeholder="Enter your password">
- Servlet ์์ ๊ฐ์ ๋ฐ๋ ๋ฐฉ๋ฒ
String username = request.getParameter("username"); String password = request.getParameter("password");
-3. ์ธ์ (submit)
- submit ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์ ์ก
- form์ ์
๋ ฅ๋ ๊ฐ์ด ์ง์ ๋ action URL๋ก ์ ์ก๋๋ค.
<button type="submit">Submit</button>
2. ์ค์ต
2-1. ์ค๋์ ์ฌ์?


datasend.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <!-- html/jsp ์์ Servlet์ผ๋ก ๋ฐ์ดํฐ ์ ์ก ๊ท์น 3๊ฐ์ง (1) ์ด๋๋ก ๋ณด๋ด? : form ํ๊ทธ์ action์ (2) ์ด๋ค๊ฐ์ ๋ณด๋ด? : inputํ๊ทธ์ name์ (3) ์ธ์ ๋ณด๋ด? : submint ๋ฒํผ --> <form action="DataSend"> ์ง๋ฌธ : <input type="text" name="data" id="" value=""> <input type="submit" value="์ง๋ฌธํ๊ธฐ"> </form> </body> </html>
ex01DataSend.java
package ex0127; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class DataSend */ @WebServlet("/DataSend") public class ex01DataSend extends HttpServlet { private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset= UTF-8"); // 1. ์์ฒญ๋ฐ์ ๋ฐ์ดํฐ ๊บผ๋ด์ค๊ธฐ String data = request.getParameter("data"); // 2. ์์ฒญ๋ฐ์ ๋ฐ์ดํฐ ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ PrintWriter out= response.getWriter(); out.print("<h1>"+data+"</h1>"); out.print("<br>"); out.print("์ค๋ ์ ์ฌ์ ์ ๋ณตํด๋ฌผ์งฌ๋ฝ์
๋๋ค"); } }
2-1. 2๊ฐ์ ์ ์ ์ ๋ ฅ ๋ฐ์ ๋ง์ ์ ์ถ๋ ฅ

์๋ธ๋ฆฟ์ ํฐ์บฃ์์ ์ ๋์๊ฐ๋๋ฐ html ๋ง ์คํ์ด ์ ๋๋ ๋ฌธ์

html ํ์ผ ๊ฒฝ๋ก๊ฐ ์๋ชป๋์๊ธฐ ๋๋ฌธ์ 404์๋ฌ๊ฐ ๋ฌ ๊ฒ์ด์๋ค.

HTML ํ์ผ์ด WEB-INF ํด๋ ์์ ์๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผํ ์ ์๋ค.
WEB-INF ๋ด๋ถ ํ์ผ์ ๋ณดํธ๋๊ธฐ ๋๋ฌธ์ ์ง์ URL๋ก ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ webapp ํ์์ ๋ค์ด๊ฐ์ผ ํ๋ค.

์๋์ฒ๋ผ ๋ฐ๊พธ๋๊น ์๋ ์ ๋จ
plusop.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="Plusop"> <input type="text" name="num1"> + <input type="text" name="num2"> <input type="submit"> </form> </body> </html>
ex02Plus.java
package ex0127; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ex02Plus */ @WebServlet("/Plusop") public class ex02Plus extends HttpServlet { private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ํ๊ธ์ฌ์ฉ ํ๊ธฐ์ํด UTF-8 response.setContentType("text/html; charset= UTF-8"); // html์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ request๋ฅผ ํตํด์ ์๋ฃํ ๋ฐ์ดํฐ๋ก ๋ฐ๋๋ค! String num1 = request.getParameter("num1"); String num2 = request.getParameter("num2"); // ์๋ฃํ๋ฐ์ดํฐ๋ intํ์ผ๋ก ๋ณํํ์ฌ์ผ ๊ณ์ฐ ๊ฐ๋ฅ int number1 = Integer.parseInt(num1); int number2 = Integer.parseInt(num2); // response๋ฅผ ํตํด์ ์ถ๋ ฅ ๊ฐ์ฒด๋ฅผ ์์ฑ PrintWriter out = response.getWriter(); // request์ ๋ํ response๋ฅผ html๋ก ์ถ๋ ฅ out.print(number1 + " + " + number2 + " = " + (number1 + number2)); } }

2-3. ๋ฐฉ ๋ง๋ค๊ธฐ (ํ)

ex03makeTable.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="MakeTable"> ๋ช ๊ฐ์ ๋ฐฉ์ ๋ง๋ค๊น์? <input type="text" name="num"> <input type="submit" value="SEND"> </form> </body> </html>
ex03MakeTable.java
package ex0127; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ex03MakeTable */ @WebServlet("/MakeTable") public class ex03MakeTable extends HttpServlet { private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset= UTF-8"); String num = request.getParameter("num"); int number = Integer.parseInt(num); PrintWriter out = response.getWriter(); out.print("<table border = '1'>"); out.print("<tr>"); for (int i = 1; i < number + 1; i++) { out.print("<td>" + i + "</td>"); } out.print("</tr>"); out.print("</table>"); } }

