본문 바로가기

JSP, Servlet/JSP, Servlet 기초

[JSP/Servlet] get방식과 post방식

get 방식과 post 방식
 클라이언트의 브라우저에서 사용자로부터 다양한 정보를 입력받기 위해서 <form> 태그 사용

 

 <form> 태그의 기본 형식
<form method=“get/post” action=“호출할 서블릿”>

 

[속성 설명]
method : 어떤 방식으로 데이터를 넘겨 줄 것인지를 결정. get과 post 방식 중에서 하나를 선택한다.
action : 전송(submit) 버튼을 누르면 action 속성에 기술한 URL로 지정된 파일을 호출한다.


 전송(submit) 버튼 만들기 예
<input type=“submit” value=“전송”>

 이 버튼을 클릭하면 <form> 태그의 action 속성에 기술한 서블릿이 요청되어 처리됨.

 

취소(reset) 버튼 만들기 예
<input type=“reset” value=“취소”>
 입력한 내용을 취소하고자 할 때 사용.
 데이터를 다시 입력할 수 있도록 이전 입력 내용을 지운다.

 

<JSP 파일>

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>GET, POST 방식 테스트</title>
</head>
<body>
	<form method="get" action="MethodServlet">
		<input type="text" value="name" name="id"><br> <input
			type="number" value="19" name="age"><br> <input
			type="submit" value="GET 방식으로 호출하기">
	</form>

	<form method="post" action="MethodServlet">
		<input type="text" value="name" name="id"><br> <input
			type="submit" value="POST 방식으로 호출하기">
	</form>
</body>
</html>

 

<Servlet 파일>

package unit03;

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 MethodServlet
 */
@WebServlet("/MethodServlet")
public class MethodServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MethodServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		int age = Integer.parseInt(request.getParameter("age"));
		System.out.println("요청한 입력 데이터 : id = " + id);
		System.out.println("요청한 입력 데이터 : age = " + age);
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html><head><meta charset=\"utf-8\" /></head><body>");
		out.println("<h1>Get방식으로 처리됨</h1></body></html>");
		out.close();
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html><head><meta charset=\"utf-8\" /></head><body>");
		out.println("<h1>Post방식으로 처리됨</h1></body></html>");
		out.close();
	}

}

 

 

get방식으로 처리되면 url부분에 전송한 정보가 입력되는 것을 볼 수 있다.

728x90
반응형