웹 개발 기초/자바 웹을 다루는 기술

GET 방식과 POST 방식 요청 동시에 처리하기

sungw00 2023. 2. 15. 16:20
728x90

웹 프로그램에서는 GET 방식과 POST 방식을 혼합해서 많이 사용한다. 이때 각 방식마다 일일이 구분해서 구현하는 것이 불편할 것이다.

전송된 방식으로 doGet( )이나 doPost( ) 메서드로 처리한 후 다시 doHandle( )을 호출해서 모든 기능을 구현할 수 있다.

// login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 창</title>
</head>
<body>
	<form name="frmLogin" method="get" action="login4" encType="UTF-8">
		아이디 : <input type="text" name="user_id"><br>
		비밀번호 : <input type="password" name="user_pw"><br>
		<input type="submit" value="로그인"> <input type="reset" value="다시입력"> 
	</form>
</body>
</html>
// LoginServlet4.java
package sec02.ex01;

import java.io.IOException;
import javax.servlet.ServletConfig;
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 LoginServlet4
 */
@WebServlet("/login4")
public class LoginServlet4 extends HttpServlet {
	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		System.out.println("init 메서드 호출");
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		System.out.println("destroy 메서드 호출");
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doGet 메서드 호출");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doPost 메서드 호출");
	}

	private void doHandle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		System.out.println("doHandle 메서드 호출");
		String user_id = request.getParameter("user_id");
		String user_pw = request.getParameter("user_pw");
		System.out.println("아이디:" + user_id);
		System.out.println("비밀번호:" + user_pw);
	}
}

 

method를 post로 변경 후 톰캣을 재시작하고 요청하면 doHandle( ) 메서드로 처리한 후 결과를 출력한다.

 

728x90