ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP로 주민번호 검사하기
    JSP 2019. 5. 14. 17:28

    JSP로 주민번호 검사하기

    form4.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
        // 이놈, 길이, 다음놈
        function checkLength(obj, length, nextObj){
            if(obj.value.length==length){
                var next = document.getElementById(nextObj);
                next.focus();
            }
        }
        function checkForm(obj){
            var j1 = obj.j1.value;
            if(j1.length!=6){
                alert("주민번호 앞자리는 6자리 이어야 합니다.");
                obj.j1.value = "";
                obj.j1.focus();
                return false;
            }
            for(i=0;i<j1.length;i++){
                if(j1.charAt(i)<'0' || j1.charAt(i)>'9'){
                    alert("주민번호 앞자리는 반드시 숫자 이어야 합니다.");
                    obj.j1.value = "";
                    obj.j1.focus();
                    return false;
                }
            }
            var j2 = obj.j2.value;
            if(j2.length!=7){
                alert("주민번호 뒷자리는 7자리 이어야 합니다.");
                obj.j2.value = "";
                obj.j2.focus();
                return false;
            }
            for(i=0;i<j2.length;i++){
                if(j2.charAt(i)<'0' || j2.charAt(i)>'9'){
                    alert("주민번호 앞자리는 반드시 숫자 이어야 합니다.");
                    obj.j2.value = "";
                    obj.j2.focus();
                    return false;
                }
            }
            return true;
        }
    </script>
    </head>
    <body>
        <form action="result4.jsp" method="post" onsubmit="return checkForm(this)">
            주민번호 : 
            <input type="text" maxlength="6" size="10" name="j1" id="j1" onkeyup="checkLength(this,6,'j2')">
            -
            <input type="password" maxlength="7" size="10" name="j2" id="j2" onkeyup="checkLength(this,7,'submitBtn')">
            <input type="submit" value="주민번호 유효성 검사하기" id="submitBtn">
        </form>
    </body>
    </html>

    result4.jsp

    <%@page import="java.util.Map"%>
    <%@page import="java.util.Enumeration"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%
        // 한글이 POST전송이면 꺠진다. 그래서 받기전에 꼭 인코딩 타입을 지정한다.
        request.setCharacterEncoding("UTF-8");
        // POST접근이 아니면 폼으로 보내기
        if(!request.getMethod().equals("POST")){
            out.println("<script>");
            out.println("alert('잘못된 접근입니다.')");
            out.println("location.href='form4.jsp'");
            out.println("</script>");
            return;
        }
        String j1 = request.getParameter("j1");
        String j2 = request.getParameter("j2");
        String jj = j1 + j2;
    
        int sum = 0;
        for(int i=0;i<12;i++){
            sum += (jj.charAt(i)-'0') * (i%8+2);
        }
        sum = (11-(sum%11))%10;
        boolean isCheck = ((sum+'0') == jj.charAt(12));
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <h1>"<%=j1 %>-<%=j2 %>"는 <%=(isCheck ? "맞는" : "틀린") %> 주민번호 입니다.</h1> 
    </body>
    </html>

    'JSP' 카테고리의 다른 글

    request.getRemoteAddr() 호출 시, IPv6 주소 반환하는 문제  (0) 2019.09.05
    URL vs URI  (0) 2019.08.30
    CSS  (0) 2019.05.13
    웹 어플리케이션이란?  (0) 2019.05.13
    오라클 메이븐 로컬 등록  (0) 2019.05.13
Designed by Tistory.