불로구

(Servlet) 서블릿 GET, POST 동시 요청 본문

프로그래밍/WEB

(Servlet) 서블릿 GET, POST 동시 요청

맹이맹이 2021. 3. 15. 00:12
반응형

이번 포스팅에서는 GET 방식과 POST 방식을 동시에 사용해보자!

- GET, POST메서드중 하나로 처리 후 doHandle()을 호출해서 모든 기능 구현

- HTML -

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form name="frmLogin" method="get" action="loginGetPost">
		아이디 : <input type="text" name="user_id" /><br>
		비밀번호 : <input type="password" name="user_pw" /><br>
		<input type="checkbox" name="subject" value="java" checked>자바
		<input type="checkbox" name="subject" value="C">C언어
		<input type="checkbox" name="subject" value="JSP">JSP
		<input type="checkbox" name="subject" value="Go">고언어
		<br>
		<input type="submit" value="로그인">
	</form>
</body>
</html>

여기서는 GET 방식으로 실행 후 POST를 처리한다.

데이터를 입력하고 로그인 버튼을 눌리기 전에 서블릿 코드를 작성해보자

- Servlet -

package sec01.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;

@WebServlet("/loginGetPost")
public class LoginGetPost extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public void init(ServletConfig config) throws ServletException {
		System.out.println("init 호출");
	}
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doGet 호출");
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doPost 호출");
		request.setCharacterEncoding("utf-8");
		String user_id = request.getParameter("user_id");
		String user_pw = request.getParameter("user_pw");
		String[] subject = request.getParameterValues("subject");
		for(String str : subject) {
			System.out.println("선택 과목 : " + str);
		}
	}

}

doGet()에서 doPost를 재호출하여 모든 방식의 요청을 처리한다!

실행 결과를 보면 init()가 호출 후 doGet이 호출되었고,

doGet에서 doPost를 재호출하여 doPost()에서 서비스가 처리되었다.


삼성전자 갤럭시 S21 울트라 휴대폰 SM-G998N, 팬텀 실버, 256GB Apple 아이폰 12 Mini, Black, 64GB
반응형
Comments