본문 바로가기

Servlet

02Servlet_ex>ex01(회원가입 폼)

만들어야할 과제

 

1. html로 폼 만들기

         조건

               1)아이디가 공백이라면  alert창 띄우기,서브밋 방지

               2) 비밀번호가 공백인지?   O ->  alert창 띄우기 ,서브밋 방지

                                                         X ->  비밀번호와 비밀번호 재확인의 value가 다른지?

                                                                                                             O  -> alert창, 서브밋 방지

                                                                                                             X  -> 서브밋!

2.  받은 요청 파라미터의 정보들을  화면에 출력하기

Register.java

package ex01;

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;

/**
 * Servlet implementation class Register
 */
@WebServlet("/register")
public class Register extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Register() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	  //요청 인코딩
	  request.setCharacterEncoding("UTF-8");
	  
	  //요청 파라미터
	  String id = request.getParameter("id");
    String pw = request.getParameter("pw");
    String name = request.getParameter("name");
    String year = request.getParameter("year");
    String month = request.getParameter("month");
    String day = request.getParameter("day");
    String gender = request.getParameter("gender");
    String email = request.getParameter("email");
    String country = request.getParameter("country");
    String tel = request.getParameter("tel");
  
    //응답 타입
    response.setContentType("text/html; charset=UTF-8");
    
    //스트림
    PrintWriter out=response.getWriter();
    
    
 // 응답
    out.println("<!DOCTYPE html>");
    out.println("<html lang=\"ko\">");
    out.println("<head>");
    out.println("<meta charset=\"UTF-8\">");
    out.println("<title>회원가입정보</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<ul>");
    out.println("<li>아이디: " + id + "</li>");
    out.println("<li>비밀번호: " + pw + "</li>");
    out.println("<li>이름: " + name + "</li>");
    int m = month.isEmpty() ? 0 : Integer.parseInt(month);
    int d = day.isEmpty() ? 0 : Integer.parseInt(day);
    out.println("<li>생년월일: " + year + "년 " + String.format("%02d", m) + "월 " + String.format("%02d", d) + "일" + "</li>");
    out.println("<li>성별: " + (gender.equals("male") ? "남자" : gender.equals("female") ? "여자" : "선택안함") + "</li>");
    out.println("<li>이메일: " + (email.isEmpty() ? "없음" : email) + "</li>");
    out.println("<li>휴대전화: " + country + " " + tel.substring(1) + "</li>");
    out.println("</body>");
    out.println("</html>");
    
    out.flush();
    out.close();
	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}​

 

NewFile.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<style>
  label {
    display: block;
    margin-top: 20px;
  }
</style>
<script>
  $(function(){
    $('#frm_join').on('submit', function(event){
      // 아이디 공백 체크
      if($('#id').val() == ''){
        alert('아이디는 필수입니다.');
        $('#id').focus();
        event.preventDefault();  // submit 방지
        return;                  // 아래 코드를 할 필요 없다. 
      }
      // 비밀번호 입력 체크
      if($('#pw').val() == '' || $('#pw').val() != $('#pw2').val()){
        alert('비밀번호를 확인하세요.');
        event.preventDefault();  // submit 방지
        return;                  // 아래 코드를 할 필요 없다.
      }
    });
  });
</script>
</head>
<body>

  <form id="frm_join" method="post" action="/servlet_ex/register">
    <div>
      <label for="id"><strong>아이디</strong></label>
      <input type="text" name="id" id="id"><span>@naver.com</span>
    </div>
    <div>
      <label for="pw"><strong>비밀번호</strong></label>
      <input type="password" name="pw" id="pw">
    </div>
    <div>
      <label for="pw2"><strong>비밀번호 재확인</strong></label>
      <input type="password" id="pw2">
    </div>
    <div>
      <label for="name"><strong>이름</strong></label>
      <input type="text" name="name" id="name">
    </div>
    <div>
    <label for="yyyy"><strong>생년월일</strong></label>
      <input type="text" name="year" id="yyyy" placeholder="년(4자)" maxlength="4" size="4">
      <select name="month">
        <option value="">월</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
      </select>
      <input type="text" name="day" placeholder="일" maxlength="2" size="4">
    </div>
    <div>
      <label for="gender"><strong>성별</strong></label>
      <select name="gender" id="gender">
        <option value="">성별</option>
        <option value="male">남자</option>
        <option value="female">여자</option>
        <option value="none">선택 안함</option>
      </select>
    </div>
    <div>
      <label for="email"><strong>본인 확인 이메일</strong>(선택)</label>
      <input type="text" name="email" id="email" placeholder="선택입력">
    </div>
    <div>
      <label for="tel"><strong>휴대전화</strong></label>
      <div>
        <select name="country">
          <option value="+233">가나 +233</option>
          <option value="...">...</option>
          <option value="+82" selected>대한민국 +82</option>
          <option value="...">...</option>
          <option value="+832">홍콩 +832</option>
        </select>
      </div>
      <input type="text" name="tel" id="tel" placeholder="전화번호 입력" size="10">
      <input type="button" value="인증번호 받기">
      <div>
        <input type="text" placeholder="인증번호 입력하세요" disabled>
      </div>
    </div>
    <div style="margin-top: 20px;">
      <button type="submit">가입하기</button>
    </div>
  </form>
  
</body>
</html>

 

'Servlet' 카테고리의 다른 글

02Servlet_ex>ex02 (구구단)  (0) 2023.10.01