Get Method(폼 태그) - 주문하기

김유정·2023년 11월 30일
3

서블릿-퀴즈

목록 보기
5/11
post-custom-banner
		<!-- 폼태그 3종 세트: form, name속성, submit 버튼 -->
		<form method="get" action="/lesson01/quiz07">
  • 전체 주석처리 ctrl + shift + / 슬래시
  • form method는 get 또는 post가 있다.
  • action 앵커 태그 같은 것 어느 서버로 보낼 것인지 뒤에 쿼리스트링(? 쓰는 것)절대 안씀

GET과 POST의 차이점
Get method: request body가 비어있다.
- 브라우저 주소
- a 태그 클릭
- form 태그 method="get"
POST method: request body에 담겨서 보내진다.
- form태그 method ="post"

			<div class="form-group">

				<label for="address"> 주소 </label>
				<input type="text" id="address" class="form-control" name="address" placeholder="주소를 입력하세요.">
			</div>
  • 한번에 묶어도 되지만 label로 글자만 감싼다음에 id로 묶어줬다.
    label for = "address"와 input id = "address"를 동일하게 한다.

  • placeholder은 아래와같이 입력 전 문구가 뜨게 한다.

  • name은 내가 작성한 내용이 서버에 보내지려면 반드시 있어야한다.
    name에 입력 되는 값은 request parameter 명이다.
    form 태그 3종 세트중 두번째이다. id와 서버는 전혀 상관없다.

  • class에 'form-control'를 입력하면 block 속성을 가지고 있기 때문에 아래로 행이 떨어지고, 행이 전체를 차지한다. 모양도 훨씬 예쁘다.

			<div class="form-group">
				<label for="card"> 결제카드 </label>
				<input type="text" id="card" class="form-control col-5" name="card" placeholder="결제카드를 입력하세요">
			</div>
			<div class="form-group">
				<label for="price"> 가격 </label>
				<input type="text" id="price" class="form-control col-5" name="price" placeholder="결제카드를 입력하세요">
			</div>
  • input type까지 label로 묶어준다면 짧게 나오지만 글자만 묶어줬으므로 한행을 전부 차지해서 길게 나온다.
    하지만 긴 문장을 쓸 필요 없는 경우에는 칸을 짧게 설정하는 것이 좋다.
    전체 칸이 12칸이므로 col- 옆에 적절한 숫자를 적어 길이를 조정한다. 여기서는 col-5를 사용했다.
<input type="submit" value="주문하기" class="btn btn-primary"></input>
  • form 태그 3종 중에 마지막엔 submit을 써준다.
    작성된 내용을 서버에 보낼 수 있는 버튼이다.
    button 타입으로 해도 되고 input으로 만들어도 된다.
    type명은 무조건 submit
  • value 에 입력하는 글자는 버튼 안에 입력되는 글자이다.
  • 예쁜 버튼을 위해 class에 btn을 입력하고
    버튼의 색깔을 바꾸고 싶다면 btn-색깔을 입력한다.
    여기에서는 파란색 primary를 입력했다.

다음은 서버에 입력된 내용이다.

// request param 꺼내기
		String address = request.getParameter("address");
		String card = request.getParameter("card");
		int price = Integer.valueOf(request.getParameter("price"));
  • 앞에서 name에 입력했던 내용을 getParameter("") 안에 입력한다.
  • request.getParameter는 String으로 변환되기 때문에 int 타입이라면 반드시 Integer.valueOf()메소드를 이용해 int로 변환해준다.
// 응답 HTML화면
		PrintWriter out = response.getWriter();
		out.print("<html><head><title>주문결과</title></head><body>");
  • PrintWriter out 여기서 PrintWriter은 P가 대문자로 시작한다.
    뒤에 붙는 out은 관례적으로 써준다.
    response.getWriter의 예외처리는 위로 넘겨준다.
  • out.print() 안에는 <html>.......</html> 하나하나 적어줘야한다는 불편함이 있다.
		// 조건문
		if (address.startsWith("서울시") == false) {
			out.print("배달 불가 지역입니다.");
  • 서울시가 아닐 때,
    ! address.startsWith("서울시") 로 써줘도 되지만 잘 안 보일 수 있으므로 address.startsWith("서울시") == false라고 적는다.
		} else if (card.equals("신한카드")) {
			out.print("결제 불가 카드 입니다.");
		} else {
			out.print(address);
			out.print("<b> 배달준비중 </b><br>");
			out.print("결제금액:" + price + "원");
		}
		out.print("</body></html>");
  • 마지막에 out.print("</body></html>"); 닫는 것까지 수행되도록 if문이 끝나고 return;은 입력하지않는다.
profile
열심히 하자
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 11월 30일

잘 보고 갑니다 ^_^

답글 달기