반응형

 

연습 문제 01

 

유효성 검사란 무엇인가?

 

더보기

사용자가 폼 페이지에서 입력한 데이터 값이 서버로 전송되기 전에

특정 규칙에 맞게 입력되었는지 검증하는 것.

 

 

 

연습 문제 02

 

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

 

더보기

1. 기본 유효성 검사

: 폼 페이지에 입력된 데이터 값의 존재 유무를 검사

 

 

2. 데이터 형식 유효성 검사

: 폼 페이지에 입력된 데이터 값이 특정 패턴에 적합한지 여부를 검사 > 정규 표현식 사용

 

 

 

연습 문제 03

 

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

 

더보기

1. 핸들러 함수

: submit을 클릭(이벤트 발생)한 경우의 유효성 검사.

자바스크립트를 이용하여 유효성 검사를 위한 코드를 작성

속도가 빠르며 서버에 과부하를 주지 않음

 

 

2. 폼 페이지를 작성하는 기법

2-1) input 태그의 type 속성 값을 submit으로 설정, onclick 속성으로 핸들러 함수 설정

2-2) form 태그의 onsubimt 속성 값 설정

2-3) 자바스크립트를 이용하여 핸들러 함수 작성

2-4) form 태그에 name 속성 또는 forms 객체를 이용하여 핸들러 함수 가져옴 (forms 객체 이용 시 배열 형태이기에 length 속성으로 크기 알 수 있음)

 

 

 

연습 문제 04

 

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

 

 

더보기

validation01.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Validation</title>
<script type="text/javascript">
function fn_btn(){
	let form = document.frm;
	let id = form.id.value;
	let passwd = form.passwd.value;
	
	console.log("id",id);
	console.log("passwd",passwd);
	
	if(!id) {
		alert("아이디를 입력해주세요");
		return;
	}
	if(!passwd) {
		alert("비밀번호를 입력해주세요");
		return;
	}
	
	if(passwd.includes(id)){
		alert("비밀번호는 ID를 포함할 수 없습니다");
		return;
	}
	form.submit();
}
</script>
</head>
<body>
	<form name="frm" action="validation_process.jsp" method="post">
		<p>아이디 : <input type="text" name="id"></p>
		<p>비밀번호 : <input type="text" name="passwd"></p>
		<p><input type="button" onclick="fn_btn()" value="전송"></p>
	</form>
</body>
</html>

 

 

validation_process.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Validation</title>
</head>
<body>
	<p>아이디 : <%=request.getParameter("id")%></p>
	<p>비밀번호 : <%=request.getParameter("passwd")%></p>
</body>
</html>

  

결과 화면1

 

결과 화면2

 

 

 

연습 문제 05

 

비밀번호로 동일한 영문이나 숫자를 3개 이상 사용하지 않도록 다음 조건에 맞게 JSP 애플리케이션을 만들고 실행 결과를 확인하시오.

 

 

더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Validation</title>
<script type="text/javascript">
function fn_btn() {
	let frm = document.frm;
	let passwd1 = frm.passwd1.value;
	let exp = /[a-zA-Z]{3,}|[0-9]{3,}/;
	console.log(exp.test(passwd1));
	
	if(exp.test(passwd1)) {
		alert("영문, 숫자는 3회 이상 연속 입력할 수 없습니다");
		return;
	}
}
</script>
</head>
<body>
	<form name="frm">
		<p>아이디 : <input type="text" name="id"></p>
		<p>비밀번호 : <input type="text" name="passwd1"></p>
		<p>비밀번호 확인 : <input type="text" name="passwd2"></p>
		<p><input type="button" onclick="fn_btn()" value="전송"></p>
	</form>
</body>
</html>

 

결과 화면3

 

 

 

연습 문제 06

 

비밀번호가 영문, 숫자, 특수기호를 조합한 8자 이상이 되도록 다음 조건에 맞게 JSP 애플리케이션을 만들고 실행 결과를 확인하시오.

 

 

더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Validation</title>
<script type="text/javascript">
function fn_btn() {
	let frm = document.frm;
	let passwd1 = frm.passwd1.value;
	let exp = /^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#$%^&*?_]).{8,}$/;
	console.log(exp.test(passwd1));
	
	if(!exp.test(passwd1)) {
		alert("영문+숫자+특수기호 8자리 이상으로 구성하여야 합니다");
		return;
	}
}
</script>
</head>
<body>
	<form name="frm">
		<p>아이디 : <input type="text" name="id"></p>
		<p>비밀번호 : <input type="text" name="passwd1"></p>
		<p>비밀번호 확인 : <input type="text" name="passwd2"></p>
		<p><input type="button" onclick="fn_btn()" value="전송"></p>
	</form>
</body>
</html>

 

결과 화면4

 

 

 

연습 문제 07

 

다음 조건에 맞게 도서 웹 쇼핑몰을 위한 웹 애플리케이션을 만들고 실행 결과를 확인하시오.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형