Servlet
package hello.servlet.basic;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("HelloServlet.service");
System.out.println("request = " + request);
System.out.println("response = " + response);
String username = request.getParameter("username");
System.out.println("username = " + username);
}
}
http://localhost:8080/hello?username=kim 요청
protected void service(HttpServletRequest request, HttpServletResponse response)
실행
! Query Parameter vs Path Variable
! HTTP
-> 클라이언트 데이터 전달.
1. (GET) 쿼리 파라미터
2. (POST) HTML Form
3. HTTP message body 에 데이터 담아 보냄
- JSON, TXT, XML
1. 쿼리 파라미터
?username=kim&age=20
System.out.println("[전체 파라미터 조회] - start");
// ?쿼리 스트링 이후로 붙은 파라미터 전체 조회
request.getParameterNames().asIterator()
.forEachRemaining(paramName -> System.out.println(paramName +
"=" + request.getParameter(paramName)));
System.out.println("[전체 파라미터 조회] - end");
console
[전체 파라미터 조회] - start
username=kim
age=20
[전체 파라미터 조회] - end
?username=kim&age=20&username=lee&age=33
System.out.println("[이름이 같은 복수 파라미터 조회]");
System.out.println("request.getParameterValues(username)");
String[] usernames = request.getParameterValues("username");
for (String name : usernames) {
System.out.println("username=" + name);
}
console
[이름이 같은 복수 파라미터 조회]
request.getParameterValues(username)
username=kim
username=lee
=> 복수 파라미터 전체 값 가져옴
단일 파라미터의 경우 -> request.getParameter()
2. HTML Form
<form action="/request-param" method="post">
username: <input type="text" name="username" />
age: <input type="text" name="age" />
<button type="submit">전송</button>
</form>
요청 url http://localhost:8080/request-param
post
=>클라이언트(웹 브라우저) 입장에선 1과 2가 차이 있지만 서버 입장에서는 차이 x
request.getParameter로 찾아오면 됨.
3.
'💻 STUDY > JAVA SPRING' 카테고리의 다른 글
스프링 입문 강의 (0) | 2024.05.09 |
---|---|
[ERROR] JSOUP no buffer left to consume (0) | 2023.02.09 |