파게로그

GET 요청과 쿼리 스트링 본문

콤퓨타 왕기초/JSP

GET 요청과 쿼리 스트링

파게 2020. 12. 9. 16:14

GET 요청, 즉 무언가를 달라고 하는 요청에는 옵션이 있을 수 있다. 이는 요청 내 쿼리스트링을 통해 구현된다.

http://localhost/hello (10번반복)
http://localhost/hello?cnt=3 (3번반복)

?cnt=3 : 쿼리스트링

hello?cnt=3 : '요청'

 

이러한 요청은 아래 4가지가 모두 가능하며, 각각에 대해 request.getParameter("cnt")를 통해서는 다음과 같은 String이 반환된다.

요청 cnt_ 처리
http://.../hello?cnt=3 "3"  
http://.../hello?cnt= "" !cnt_.equals("")
http://.../hello? null cnt_ != null
http://.../hello null cnt_ != null

 

즉 기본값을 사용하고자 한다면 위 4가지를 모두 고려해야 한다.

 

index.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Root Directory Test</title>
	</head>
	<body>
		<h3>Root Directory</h3><br >
		<a href="helllo">인사하기</a><br >
		<a href="helllo?cnt=3">인사하기</a><br >
	</body>
</html>

 

Hello.java

package com.ddoongi.web;

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

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;

@WebServlet("/helllo")
public class Hello extends HttpServlet {
	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		
		// 출력 형식과 문서 형식
		res.setCharacterEncoding("UTF-8");
		res.setContentType("text/html; charset=UTF-8");
		
		// PrintWriter 생성
		PrintWriter out = res.getWriter();
		
		// Business Logic
		String cnt_ = req.getParameter("cnt");
        
		int cnt = 10; // 기본값
		
		if (cnt_ != null && !cnt_.equals(""))
			cnt = Integer.parseInt(cnt_);
		
		for (int i = 0; i < cnt; i++) {
			out.println((i+1)+": 안뇽 Hello!<br />");
		}
		
	}
}

 

HTML의 <form>을 이용해 쿼리스트링이 포함된 url을 호출해보자.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"><title>Root Directory Test</title>
</head>

<body>
	<h3>Root Directory</h3><br>
	<div><form action="hello"> <!--servlet mapping url-->
			<div>
				<label>인사 받을 횟수 입력</label>
			</div>
			<div>
				<input type="text" name="cnt" />
				<!-- name과 value가 query string으로 전달됨 -->
				<input type="submit" value="출력하기" />
			</div>
		</form></div>
</body>

</html>

<form>의 action 속성은 servlet mapping url이 되어야하고,

submit을 누르면 http://.../action?name=value의 url이 호출된다.

'콤퓨타 왕기초 > JSP' 카테고리의 다른 글

URI와 URL, URN  (0) 2020.12.14
POST 요청  (0) 2020.12.09
Eclipse를 통한 웹 개발 기본  (0) 2020.12.09
REST API 설계  (0) 2020.11.23
(IDE 없이) 클라이언트에게 출력  (0) 2020.10.20
Comments