→ 이 3가지는 무조건 외우기!


send.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1> 데이터 전송해보기 </h1>
<!-- 1. action : 데이터 보낼 주소
2. name : 데이터 이름
3. submit : 데이터 보낼 시점 -->
<!-- action에는 servlet의 url mapping값을 작성
action에 작성한 페이지를 요청한다는 의미 -->
<form action="Ex04_get">
DATA <input type="text" name="data">
<input type="submit">
</form>
</body>
</html>
-action에는 servlet의 url mapping값을 작성
-action에 작성한 페이지를 요청하는 의미

get.java

public class Ex04_get extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Ex04_send.html 에서 보낸 데이터를 받아줄 공간
// data이름을 가진 값을 받아주기
// html페이지에서 이 servlet을 요청 -> 요청할 때 data를 가지고 왔음
// 요청과 관련된 정보가 들어있는 request 객체에서 꺼내와야한다!
// .getParameter("form태그에 작성했던 name값")
String data = request.getParameter("data");
System.out.println(data);
// 500 에러 : 문법 에러 -> 요청한 페이지의 문법, 코드 확인
// 404 에러 : Not Found -> 보통 경로 문제, 경로 확인
}
}
-Ex04_send.html 에서 보낸 데이터를 받아줄 공간
-data이름을 가진 값을 받아주기
-html페이지에서 이 servlet을 요청 -> 요청할 때 data를 가지고 왔음
-요청과 관련된 정보가 들어있는 request 객체에서 꺼내와야한다
-.getParameter("form태그에 작성했던 name값")

→ 결과는 consol창
sendName.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Ex05_getName">
당신의 이름은? <input type="text" name="name">
<br>
당신의 나이는? <input type="text" name="age">
<br>
<input type="submit">
</form>
</body>
</html>

getName.java

public class Ex05_getName extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Ex04_sendName에서 보낸 이름과 나이 데이터 받아와서
// Web에 출력하기
// 1. 데이터 받아오기
String name = request.getParameter("name");
String age = request.getParameter("age");
// 2. Web에 출력하기 -> PrintWriter
// 응답할 문서에 대한 설정
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
out.print("제 이름은 " + name + "입니다. <br>");
out.print("제 나이는 " + age + "살입니다.");
}
}
-Ex04_sendName에서 보낸 이름과 나이 데이터 받아와서 Web에 출력하기
-Web에 출력하기 -> PrintWriter
-응답할 문서에 대한 설정
response.setContentType("text/html; charset=utf-8");

plus.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Ex06_plus">
<input type="text" name="num1">
+
<input type="text" name="num2">
<input type="submit" value="연산">
</form>
</body>
</html>

plus.java

public class Ex06_plus extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 입력한 두 수 받아서 web에 출력하기
// 1. 입력한 두 수 받아오기
String num1 = request.getParameter("num1");
String num2 = request.getParameter("num2");
// 형변환 Integer객체의 parseInt메소드 사용
// int num1 = Integer.parseInt(request.getParameter("num1"));
// int num2 = Integer.parseInt(request.getParameter("num2"));
// int result = num1 + num2;
int intValue1 = Integer.parseInt(num1);
int intValue2 = Integer.parseInt(num2);
// 2. 응답할 문서에 대한 설정
response.setContentType("text/html; charset=utf-8");
// 3. 출력 스트림 열기
PrintWriter out = response.getWriter();
// = response.getWriter().print("")
out.print(num1 + "과 " + num2 + "의 합은 " + (intValue1+intValue2) + "입니다.");
}
}
-형변환 Integer객체의 parseInt메소드 사용
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
int result = num1 + num2;
// 출력 스트림 열기
PrintWriter out = response.getWriter();
// = response.getWriter().print("")
out.print()

makeTable.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1> 방 만들기 </h1>
<form action="Ex07_makeTable">
방 개수 : <input type="text" name="room">
색깔 : <input type="color" name="color">
<input type="submit">
</form>
</body>
</html>

makeTable.java

public class Ex07_makeTable extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 방 개수, color 받아와서 table형태로 웹에 출력 -> 반복문
// 1. 방 개수, color 받아오기
int room = Integer.parseInt(request.getParameter("room"));
String color = request.getParameter("color");
response.setContentType("text/html; charset=utf-8");
// 2. 웹에 출력
PrintWriter out = response.getWriter();
// 3. table 형태로 출력하기
// table -> 1개, tr -> 1개, td -> 사용자가 입력한 방의 개수
out.print("<table border=1 style=background-color:"+color+"><tr>");
for(int i=1; i<=room; i++) {
out.print("<td>" + i + "</td>");
}
out.print("</tr></table>");
}
}
-방 개수, color 받아와서 table형태로 웹에 출력 -> 반복문
-table -> 1개, tr -> 1개, td -> 사용자가 입력한 방의 개수

→ 500 에러 : 문법 에러 -> 요청한 페이지의 문법, 코드 확인
→ 404 에러 : Not Found -> 보통 경로 문제, 경로 확인