[8장 연습문제]

 

01. 유효성 검사란 무엇인가?

 

사용자가 폼에 입력한 데이터 값이 서버로 전송되기 전에 특정 규칙에 맞게 입력되었는지 검증 하는것을 말한다.

유효성 검사를 위한 핸들러 함수는 폼 페이지에서 이벤트 발생 시(버튼 클릭 or <submit>클릭) 유효성 검사를 위해 매핑하는 메소드를 의미한다.

 

02. 유효성 검사를 위한 두 가지 처리 기법을 간단히 설명하시오.

 

1. 기본 유효성 검사:  사용자가 폼의 입력항목에 입력한 데이터 값의 존재유무, 데이터 길이, 숫자 등 기본적인 것을 검사

2. 데이터 형식 유효성 검사: 사용자가 폼의 입력항목에 입력한 데이터 값이 특정 형태에 적합한지 검사하기 위해 정규표현식 사용

 

03. 유효성 검사를 위한 핸들러 함수와 폼 페이지를 작성하는 기법을 설명하시오.

-> 04번 문제의 코드 참조

 

04. 비밀번호가 아이디를 포함하지않도록 조건에 맞게 jsp애플리케이션을 만들고 실행결과를 확인하시오. 

 

case 1. 아이디:admin, 비밀번호:admin1234입력              case2. 아이디, 비밀번호 미입력

       

 

case3. 아이디:admin, 비밀번호:123 입력

- validation01.jsp 파일 생성

- validaton01_process.jsp 파일 생성

- 아이디, 비밀번호 항목이 입력되지 않으면 메시지창 출력

- 비밀번호에 ID가 포함되면 메시지창 출력

 

<코드>

1. validation01.jsp

21~25행은 "입력한 패스워드 정보가 아이디 값을 포함하면 경고창을 띄우고 수정한다." 를 의미합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>Validation</title>
</head>
<script type="text/javascript">
    function checkInfo(){
        var form= document.form;
        if(form.id.value=="")
        {
        alert("아이디 입력");
        form.passwd.select();
        return
        }
        else if(form.passwd.value=="")
        {
        alert("비밀번호 입력");
        form.passwd.select();
        return;
        }
    if((form.passwd.value).search(form.id.value)>-1)
        {
        alert("비밀번호는 ID를 포함할 수 없습니다.");
        return;
        }
    form.submit();
        
    }
</script>
<body>
    <form action="validation01_process.jsp" name="form" method="post">
        <p> 아이디: <input type="text" name="id">
        <p> 비밀번호: <input type="password" name="passwd">
        <p> <input type="submit" value="전송" onclick="checkInfo()">
    </form>
</body>
</html>
cs

 

2. validation01_process.jsp

1
2
3
4
5
6
7
8
9
10
11
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>Validation</title>
</head>
<body>
 
    <p>아이디: <%=request.getParameter("id") %>
    <p>비밀번호: <%=request.getParameter("passwd") %>
</body>
</html>
cs

 

 

05. 비밀번호로 동일한 영문이나 숫자를 3개이상 사용하지않도록 조건에 맞게 구현하고 결과를 확인하시오.

         

 

- 비밀번호에 동일한 영문이나 숫자가 3개연속 입력되면 메시창 출력

ex) aaa-> 오류, 1111-> 오류

 

<코드>

1. validation02.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Validation</title>
</head>
<script>
function check(){
 
    var form=document.frm;
    var passwd=form.passwd.value;
    var passwdcheck=form.passwd2.value;
    if(passwd!=passwdcheck)
        {
        alert("비밀번호 다시 확인");
        return false;
        }
    if(/(\w)\1\1/.test(passwd))
        {
        alert("영문,숫자는 3자 이상 연속 입력 불가능");
        form.passwd.focus();
        return false;
        }
    form.submit();
}
 
</script>
<body>
 
<form action="validation01_process.jsp" name="frm">
<p> 아이디 : <input type="text" name="id">
<p> 비밀번호 : <input type="text" name="passwd">
<p> 비밀번호 확인 : <input type="text" name="passwd2">
<input type="button" value="전송" onclick="return check();">
</form>
 
</body>
</html>
cs

 

2. validation02_process.jsp

1
2
3
4
5
6
7
8
9
10
11
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>Validation</title>
</head>
<body>
 
    <p>아이디: <%=request.getParameter("id") %>
    <p>비밀번호: <%=request.getParameter("passwd") %>
</body>
</html>
cs

 

 

06. 비밀번호가 영문, 숫자, 특수기호를 조합한 8자이상이 되도록 조건에 맞게 구현하고 결과를 확인하시오.

 

 

<코드>

1. validation03.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Validation</title>
</head>
<script>
function check(){
 
    var form=document.frm;
    var passwd=form.passwd.value;
    var passwdcheck=form.passwd2.value;
    var regExpPasswd=/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,}$/;
    if(!regExpPasswd.test(passwd))
        {
        alert("영문+숫자+특수기호 8자리 이상 구성 필요");
        return false;
        }
    form.submit();
}
 
</script>
<body>
 
<form action="validation01_process.jsp" name="frm">
<p> 아이디 : <input type="text" name="id">
<p> 비밀번호 : <input type="text" name="passwd">
<p> 비밀번호 확인 : <input type="text" name="passwd2">
<input type="submit" value="전송" onclick="return check();">
</form>
 
</body>
</html>
cs

 

 

 

 

 

 

 

+ Recent posts