파게로그
GET 요청과 쿼리 스트링 본문
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