BackEnd/Java

[Servlet/JSP]Servlet을 이용해 서버 요청 보내기

Hojung7 2024. 8. 16. 10:55

 ▶ jakarta.servelt .http.HttpServlet


 
 - http 프로토콜 서비스를 지원하는 추상 클래스
 -> 상속 받아서 사용
  
  - 해당 클래스르 상속 받았다고 해서
   클라이언트의 요청을 받아서 처리할 수 있는 
   진짜 Servlet이 된 것은 아니다!!!!!!
 
  [Servlet 등록 절차]
  1. web.xml에 직접 작성하는 방법
   -> src/main/webapp/WEB-INF 폴더 내에 존재함

 

#예제1

[html]

<div>
  이름 : <input type="text" name = "inputName">
</div>

<div>
 나이 : <input type="number" name = "inputAge">
</div>

<button type="submit">제출하기</button>

 

[java]

package edu.kh.servlet.controller;

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class ExampleServlet1 extends HttpServlet {

	// 제출된 GET 방식 요청을 처리하는 메서드
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		System.out.println("/ex1 GET 방식 요청 처리를 위한 메서드 수행");
		
		String inputName = req.getParameter("inputName");
		String inputAge = req.getParameter("inputAge");
			
		System.out.printf("%s의 나이는 %s세 입니다\n", inputName, inputAge);
		
		
		//-------------------------------------------------------------
		
		/*서버 -> 클라이언트 응답 처리*/
		/*
		 * 1) 서버에서 HTML 코드를 만들어 
		 * 클라이언트에게 전달 == 응답(response) 
		 * 
		 * 2) 클라이언트의 브라우저가 
		 * 응답받은 HTML 코드를 해석해
		 *   화면을 보여줌
		 */
		
		// 응답처리 1. 응답하는 문서의 형식과 문자 인코딩 지정
		resp.setContentType("text/html; charset = UTF-8");
		
		// text/html : 글자로된 HTML 형식의 문서다
		// -> MIME Type : 
		// 인터넷으로 전달되는 데이터/파일의 형식을  구부하는 것
		
		// charset : 문자 인코딩    
		// UTF-8  : 유니코드를 위한 가변 길이 문자 인코딩 방식
		//   - 영어, 숫자, 기본 특수문자 : 1byte
		//   - 나머지(한글, 한문 등)       : 3byte
		
		// *응답 처리 2* : 출력용 스트림 얻어오기
		PrintWriter out = resp.getWriter();
		
		// *응답 처리 3* : 출력할 HTML 코드 만들기
		StringBuilder sb = new StringBuilder();
		
		sb.append("<!DOCTYPE html>");
		sb.append("<html>");
		
		sb.append("<head>");
		sb.append("<title> /ex1 응답 페이지 </title>");
		
		sb.append("</head>");
		
		sb.append("<body>");
		sb.append("<h1>응답 페이지 입니다.</h1>");
		sb.append("<ul>");
		
		sb.append("<li>입력 받은 이름 : "+ inputName + "</li>");
		sb.append("<li>입력 받은 나이 : "+ inputAge + "</li>");
		
		sb.append("</ul>");
		sb.append("</body>");
		
		sb.append("</html>");
		
		
	//*응답 처리 4* : 출력 스트림을 이용해 
	//					클라이언트에게 HTML 코드 출력(응답)
	
		out.write(sb.toString());
		
		
		
		
		
		
		
	}
}

 

#결과

 

#예제2

[html]

	<form action="/ex2" method="GET">

	   <h3>입력 받은 두 수 연산하기</h3>

		<div>
			입력 1 : <input type="number" name = "input1">

		</div>
		<div>
                        입력 2 : <input type="number" name = "input2">
		</div>


			<!-- radio -->
			<!-- radio : name 속성 값이 일치하는 요소들 중 하나만 선택 -->
			<h6>연산자 선택</h6>
			<div>
				+ <input type="radio" name = "op" value="plus" checked>
				- <input type="radio" name = "op" value="minus">
				* <input type="radio" name = "op" value="multi">
				/ <input type="radio" name = "op" value="div">
				% <input type="radio" name = "op" value="mod">

				
		   <button type="submit">계산하기</button>
			</div>

		</form>

 

#결과

 

 

 

 

'BackEnd > Java' 카테고리의 다른 글

[Servlet/JSP]EL/JSTL 예제  (0) 2024.08.16
[Servlet/JSP]EL/JSTL  (0) 2024.08.16
[Servlet/JSP] Servlet을 이용한 예제  (0) 2024.08.16
[Servlet/JSP] 알고 있어야 할 선수 지식 및 웹 개발 상식  (0) 2024.08.16
[Servlet/JSP]JSP란?  (0) 2024.08.16