본문 바로가기

Servlet, JSP

Get 요청과 쿼리 스트링

반응형

이번에 만들 것은 서버로 값을 보낸 이후에 보낸 숫자만큼 Hello Servlet을 브라우저에 출력해볼 것입니다.

 

 

이번 예제를 통해서는 파라미터를 서버로 전달하고, 서버에서는 받는 방법을 익힐 수 있습니다.

 

서버로 데이터를 보낼 HTML 문서

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div>
		<form action ="hello">
			<div>
				<label>서버로 보낼 값</label>
			</div>
			<div>
				<input type ="text" name ="cnt"/>
				<input type ="submit" value ="보내기"/>
			</div>
		</form>
	</div>
</body>
</html>

<form> 태그의 action에 매핑된 서블릿을 실행합니다.

<input>에서 속성이 "text"인 태그의 name 값을 기준으로 서버에서 쿼리 스트링을 식별합니다.

 

받은 파라미터의 수 만큼 문자열을 출력하는 서블릿

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
	@Override
	public void service (HttpServletRequest request
			, HttpServletResponse response) throws IOException, ServletException{
		response.setCharacterEncoding("UTF-8"); 
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		
		String cnt_temp =request.getParameter("cnt");
		int cnt = 101;
		if (cnt_temp !=null && !cnt_temp.equals(""))
			cnt = Integer.parseInt(cnt_temp);
		

		for (int i =0; i <cnt; i++)
			out.println("야호 Hello Servlet <br>");
	}

}

 

다음 코드로 쿼리 스트링을 받습니다.

String cnt_temp = request.getParameter("cnt");

 

서블릿 코드 중에서 다음과 같이 예외 처리를 한 이유는 쿼리 스트링 값이 빈 값이거나 null로 넘어오는 경우가 있기 때문입니다.

/?cnt=20 → "20"

/?cnt= → ""

/? → null

/ → null

String cnt_temp =request.getParameter("cnt");
int cnt = 101;
if (cnt_temp !=null && !cnt_temp.equals(""))
	cnt = Integer.parseInt(cnt_temp);
반응형