본문 바로가기
JSP Servlet

JSP Servlet 데이터 전송 form 태그, input 태그

by wanttosleep1111 2023. 1. 27.

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

댓글