JSP Servlet 데이터 전송 form 태그, input 태그
1. 데이터 전송
- action : Servlet의 url mapping 값
- name : 보내고 싶은 데이터 이름표 부착
- submit : 버튼을 눌렀을 때 전송 가능
※ 트리구조 Servlet, HTML, CSS, JS 위치
▶ 연습
입력한 값을을 서버에 전송하여 웹 페이지에 출력하기
※ 한글 출력 코드 : response.setContentType("text/html;charset=UTF-8");
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="DataSend">
질문 : <input type="text" name="data">
<input type="submit">
</form>
</body>
</html>
package Servlet0126;
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;
@WebServlet("/DataSend")
public class Ex03DataSend extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 요청받은 데이터 꺼내오기
String data = request.getParameter("data");
// 2. h1태그를 사용해서 요청받은 데이터를 화면에 출력
// 2-1) 한글 인코딩 잡아주기
response.setContentType("text/html;charset=UTF-8");
// 2-2) 출력 스트림 꺼내오기
PrintWriter out = response.getWriter();
// 2-3) 출력하기
out.print("<h1>"+data+"</h1>");
}
}
▶ 예제
2개의 정수를 입력 받아 덧셈식 출력
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Plus">
<input type="text" name="num1">
+
<input type="text" name="num2">
<input type="submit" value="확인">
</form>
</body>
</html>
package Servlet0126;
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;
@WebServlet("/Plus")
public class Ex04Plus extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
PrintWriter out = response.getWriter();
out.print("<h1>");
out.print(num1+" + "+num2+" = "+(num1+num2));
out.print("</h1>");
}
}
▶ 예제
2개의 정수와 연산기호를 입력 받아 연산식 출력
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Operation">
<input type="text" name="num1">
<select name="op">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="text" name="num2">
<input type="submit" value="계산">
</form>
</body>
</html>
package Servlet0126;
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;
@WebServlet("/Operation")
public class Ex05Operation extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
String op = request.getParameter("op");
int result = 0;
if (op.equals("+")) {
result = num1 + num2;
} else if (op.equals("-")) {
result = num1 - num2;
} else if (op.equals("*")) {
result = num1 * num2;
} else if (op.equals("/")) {
result = num1 / num2;
}
PrintWriter out = response.getWriter();
out.print("<h1>");
out.print(num1+" "+op+" "+num2+" = "+result);
out.print("</h1>");
}
}
▶ 예제
정수 1개를 입력 받아 입력한 숫자에 따라 방을 생성하기
<!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>
package Servlet0126;
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;
@WebServlet("/MakeTable")
public class Ex06MakeTable extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int num = Integer.parseInt(request.getParameter("num"));
PrintWriter out = response.getWriter();
out.print("<table border=1>");
out.print("<tr>");
for (int i = 1; i<=num; i++) {
out.print("<td>"+i+"</td>");
}
out.print("</tr>");
out.print("</table>");
}
}
▶ 예제
정수 2개와 색깔을 입력 받아 테이블에 구구단을 출력하기
지정한 색깔로 테이블 배경색을 변경하기
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="MakeGugu">
색상 선택 :
<input type="color" name="color">
<br>
<input type="text" name="num1">
에서
<input type="text" name="num2">
까지의 구구단을 출력
<input type="submit" value="전송">
</form>
</body>
</html>
package Servlet0126;
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;
@WebServlet("/MakeGugu")
public class Ex07MakeGugu extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
String color = request.getParameter("color");
out.print("<table border=1 bgcolor="+color);
for (int i = num1; i<=num2; i++) {
out.print("<tr>");
for (int j = 1; j<10; j++) {
out.print("<td>");
out.print(i+"*"+j+"="+(num1*j));
out.print("</td>");
}
out.print("</tr>");
}
out.print("</table>");
}
}
▶ 예제
정수 1개와 색깔을 입력 받아 다음과 같이 출력하기
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Star">
색상 선택 :
<input type="color" name="color">
<br>
줄 수 입력
<input type="text" name="num">
<input type="submit" value="Send">
</form>
</body>
</html>
package Servlet0126;
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;
@WebServlet("/Star")
public class H01Star extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
int num = Integer.parseInt(request.getParameter("num"));
String color = request.getParameter("color");
for (int i = 1; i <= num; i++) {
if (i%2 == 0) {
out.print("<table border=1 bgcolor="+color);
out.print("<tr>");
} else {
out.print("<table border=1>");
out.print("<tr>");
}
for (int j = 0; j < i; j++) {
out.print("<td>");
out.print("*");
out.print("</td>");
}
out.print("</tr>");
out.print("</table>");
}
}
}
'JSP Servlet' 카테고리의 다른 글
JSP Servlet 내장 객체 (Implicit Object) (0) | 2023.02.04 |
---|---|
JSP Servlet Java Server Pages 기본 (0) | 2023.01.30 |
JSP Servlet 데이터 전송 방식 Get, Post (0) | 2023.01.28 |
JSP Servlet Print, Table (0) | 2023.01.26 |
JSP Servlet 기본 (0) | 2023.01.26 |
댓글