사용자에게 서블릿이라는 API를 이용해 사용자에게 어떻게 출력할것인가 .
출력을 알아봤으니 사용자가 어떤값을 입력했을 때 입력을 어떻게 처리할 것인가.
사용자 입력이란 것은 나에게 요청할떄 요청하는과정에서 입력이 이루어진다.
요청할 때 전달하는 값은 우리가 어떻게 받을것인가.
대표적으로 get과 post 가 있는데 get을 먼저 보겠다
GET 요청
무엇을 달라고 하는 요청에는 옵션이 있을 수 있다.
http://localhost/hello -> GET 기본적으로 클라이언트가 요청하는 것은 문서이다.
문서를 요청할 때 추가적인 인자를 전달할수있다. 쿼리스트링 이라고도 부른다.
달라고 하는 요청에서도 추가적인 옵션을 질의할수있다. 이것이 웹에서 가능하다 이것을 전달하면 서버에서 일괄적인 것을 돌려주는것이아니라 추가적인 옵션에 맞는 문서를
Hello 를 주면서 3번만 반응할수있어야 한다.
package com.newlecture.web;
import java.io.IOException;
import java.io.PrintWriter;
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("/hi") // 각자 분업화된 내용들을 처리할수 있기 때문에 훨씬더 깔끔하게 협업을 할수있다.
public class Nana extends HttpServlet {
// 서비스 함수 오버라이딩
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8"); // UTF-8를 쓰기 위해서 보내고
response.setContentType("text/html; charset=UTF-8");
// 클라이언트에 전달되서 character 를 보내니까 브라우저가 UTF-8로 읽어라 text/html 은 html문서라는
PrintWriter out = response.getWriter();
int cnt = Integer.parseInt(request.getParameter("cnt")); // 요청 문자열을 정수로 쓰고 싶다면 ?
for(int i=0; i<cnt; i++) {
out.println((i+1)+": 안녕 Servlet!! <br >");
}
}
}
GetParameter 는 사용자에게 전달할 때 쿼리값을 심어서 전달할 때 키워드를 읽을수있다.
cnt는 서버와 합의가 되있어야한다. 그래서 cnt로 보낼거라는 것은 서버가 알고있어야 한다. ★
cnt값을 읽는데 무조건 문자열로 받는데 Integer.parseInt 로 정수로 변환해서 써야한다.
반복문을 이용할 때 cnt수만큼 반복한다.
오류? 무조건 cnt를 받는데 이녀석을 받아올수없는게 쿼리값을 전달하는게 없는데 읽는데 오류가 걸린다. 쿼리 값을 심어보자
값이 나온다 기본값을 사용하는건데 다음시간에 기본값에 대해 배워보겠습니다.
hi?cnt=3 쿼리를 요청했다.
'Web Programming > JSP + Servlet' 카테고리의 다른 글
[17] 사용자 입력을 통한 GET 요청 ( 전달하는 방법 ) (0) | 2020.08.08 |
---|---|
[16] 입력값에 기본 값 사용하기 (0) | 2020.08.08 |
[14] 한글과 콘텐츠 형식 출력하기 (0) | 2020.08.08 |
[12] 어노테이션 이용한 URL 매핑 , web.xml보다 더 간편하다. (0) | 2020.08.08 |
[11] 이클립스를 이용한 서블릿 프로그래밍 , web.xml 사용 (0) | 2020.08.08 |