본문 바로가기
☕ Java 웹 프로그래밍/Servlet & JSP

[Servlet&JSP] 사용자 입력: 사용자로부터 입력받은 값으로 GET 요청

by 일단연 2023. 5. 24.

* 본 글은 [뉴렉처]의 Servlet&JSP 프로그래밍 강의를 듣고 정리한 글입니다.

 

2020 Servlet&JSP 프로그래밍

 

www.youtube.com

 

 사용자 입력: 사용자로부터 입력받은 값으로 GET 요청 

  • 고정된 값이 아니라 사용자로부터 입력받은 값을 이용

사용자로부터 반복횟수 입력받기

  • 위의 과정을 실행하면,
    • 입력폼에 사용자가 값을 입력하고 출력 버튼 클릭 > hello?cnt=3 이라는 쿼리스트링이 GET 요청으로 서버에 전달 > 서버에서는 쿼리 값에 맞게 문서를 클라이언트에 응답
  • 사용자로부터 반복횟수를 입력받으려면 입력폼을 준비해야 함
    • 해당 폼의 입력 칸에 사용자가 값을 입력하고 버튼을 클릭 = Get 요청
    • 입력되는 박스의 속성이 입력되는 값을 실어나르는 키워드를 책임짐
      • 입력되는 박스 내부: name=”cnt”

HTML의 <form>태그와 <input>태그

  • <form>태그: 사용자로부터 입력을 받을 수 있는 HTLM 입력 폼(form)을 정의
    • <form>태그 내부에 들어갈 수 있는 태그들: <button>, <fieldset>, <input>, <label>, <option>, <optgroup>, <select>, <textarea>
    • action 속성의 값으로 서블릿의 매핑 주소를 작성
  • <input>태그: 사용자로부터 입력받을 수 있는 입력 필드(input field)를 정의. <form>태그 내부에 사용
    • 빈 태그(empty tag)이며, 속성만을 포함
    • <label> 요소를 사용하면 <input> 요소의 라벨(label)을 정의할 수 있음
    • type 속성의 값으로는 text, submit 등이 있음

사용자로부터 반복횟수를 입력받는 코드

  • WebContent에 hi.html 파일 생성해 코드 작성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  <div>
    <form action="hi">
      <div>
        <label>"안녕하세요"를 몇 번 듣고 싶으세요?</label>
      </div>
      <div>
        <input type="text" name="cnt"/>
        <input type=submit value="출력"/>
      </div>
    </form>
  </div>
</body>
</html>
  • 해당 HTML과 서블릿이 상호작용하는 과정
    • 1) 사용자가 text 입력창에 값을 입력하고 submit 버튼 누름
    • 2) <form>태그의 hi에 요청이 전달됨
    • 3) 브라우저는 <form>태그에 입력된 속성 action의 값 hi(서블릿에선 매핑주소임)를 보고 URL을 작성
    • 4) <input>태그의 속성 name의 값이 존재한다면 그 값을 가져와 URL 끝에 쿼리를 작성하고 그 쿼리의 값은 사용자가 입력한 값임
    • *<form>태그가 없다면 서블릿의 매핑주소도 없으니까 URL도 생성되지 않고 쿼리스트링도 없음
  • 결과