8장 연습 문제 소스코드
8장 연습문제
1. 사용자가 폼 페이지에서 입력한 데이터 값이 서버로 전송되기 전에 특정 규칙에 맞게 입력되었는지 검증하는 것은 무엇인가?
- 1번 유효성 검사
2. 유효성 검사가 필요한 이유에 해당하지 않는 것은 무엇인가?
- 4번 예외처리 방지
3. 유효성 검사로 옳지 않은 것은 무엇인가?
- 2번 예외처리 확인하기
4. 숫자 여부를 확인하는 유효성 검사의 메소드는 무엇인가?
- 1번 isNaN()
5. 사용자가 폼 페이지의 입력 항목에 입력한 데이터 값이 특정 형태에 적합한지 검사하는 것은 무엇인가?
- 2번 데이터 형식 유효성 검사
6. 정규 표현식의 표현으로 잘못 짝지어진 것은 무엇인가?
- 3번 x*: x가 1번 이상 반복된다
7. 정규 표현식을 이용한 유효성 검사로 데이터 형식과 패턴이 잘못 짝지어진 것은 무엇인가?
- 3번 휴대전화: ^\d{2.3}-\d{3,4}-\d{4}$
- 4번 주민등록번호: \d{6} - [1-4]\d{6}
소스 코드
8.
<!DOCTYPE html>
<html>
<head>
<title>Validation</title>
<script type="text/javascript">
function validateForm() {
var username = document.forms["validationForm"]["username"].value;
var password = document.forms["validationForm"]["password"].value;
if (username == "") {
alert("아이디를 입력해주세요.");
return false;
}
if (password == "") {
alert("비밀번호를 입력해주세요.");
return false;
}
if (password.includes(username)) {
alert("비밀번호는 아이디를 포함할 수 없습니다.");
return false;
}
return true;
}
</script>
</head>
<body>
<h2>Validation Example</h2>
<form name="validationForm" action="validation_process.jsp" method="post" onsubmit="return validateForm()">
아이디: <input type="text" name="username"><br>
비밀번호: <input type="password" name="password"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Validation Processing</title>
</head>
<body>
<h2>Validation Processing</h2>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
out.println("아이디: " + username + "<br>");
out.println("비밀번호: " + password + "<br>");
%>
</body>
</html>
9.
<!DOCTYPE html>
<html>
<head>
<title>Validation Example</title>
<script type="text/javascript">
function validatePassword(password) {
var pattern = /([a-zA-Z0-9])\1\1/;
return pattern.test(password);
}
function validateForm() {
var username = document.forms["validationForm"]["username"].value;
var password = document.forms["validationForm"]["password"].value;
var confirmPassword = document.forms["validationForm"]["confirmPassword"].value;
if (username == "") {
alert("아이디를 입력해주세요.");
return false;
}
if (password == "") {
alert("비밀번호를 입력해주세요.");
return false;
}
if (confirmPassword == "") {
alert("비밀번호 확인을 입력해주세요.");
return false;
}
if (password !== confirmPassword) {
alert("비밀번호와 비밀번호 확인이 일치하지 않습니다.");
return false;
}
if (validatePassword(password)) {
alert("비밀번호는 연속 3자 이상의 영문 또는 숫자를 포함할 수 없습니다.");
return false;
}
return true;
}
</script>
</head>
<body>
<h2>Validation Example</h2>
<form name="validationForm" action="validation_process.jsp" method="post" onsubmit="return validateForm()">
아이디: <input type="text" name="username"><br>
비밀번호: <input type="password" name="password"><br>
비밀번호 확인: <input type="password" name="confirmPassword"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Validation Processing</title>
</head>
<body>
<h2>Validation Processing</h2>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String confirmPassword = request.getParameter("confirmPassword");
boolean hasConsecutiveChars(String str) {
for (int i = 0; i < str.length() - 2; i++) {
if (str.charAt(i) == str.charAt(i+1) && str.charAt(i+1) == str.charAt(i+2)) {
return true;
}
}
return false;
}
if (username == null || username.isEmpty()) {
out.println("<script>alert('아이디를 입력해주세요.'); history.back();</script>");
} else if (password == null || password.isEmpty()) {
out.println("<script>alert('비밀번호를 입력해주세요.'); history.back();</script>");
} else if (confirmPassword == null || confirmPassword.isEmpty()) {
out.println("<script>alert('비밀번호 확인을 입력해주세요.'); history.back();</script>");
} else if (!password.equals(confirmPassword)) {
out.println("<script>alert('비밀번호와 비밀번호 확인이 일치하지 않습니다.'); history.back();</script>");
} else if (hasConsecutiveChars(password)) {
out.println("<script>alert('비밀번호는 연속 3자 이상의 영문 또는 숫자를 포함할 수 없습니다.'); history.back();</script>");
} else {
out.println("아이디: " + username + "<br>");
out.println("비밀번호: " + password + "<br>");
}
%>
</body>
</html>
10.
<!DOCTYPE html>
<html>
<head>
<title>Validation Example</title>
<script type="text/javascript">
function validatePassword(password) {
var hasLetter = /[a-zA-Z]/.test(password);
var hasDigit = /\d/.test(password);
var hasSpecialChar = /[!@#$%^&*(),.?":{}|<>]/.test(password);
var isValidLength = password.length >= 8;
return hasLetter && hasDigit && hasSpecialChar && isValidLength;
}
function validateForm() {
var username = document.forms["validationForm"]["username"].value;
var password = document.forms["validationForm"]["password"].value;
var confirmPassword = document.forms["validationForm"]["confirmPassword"].value;
if (username == "") {
alert("아이디를 입력해주세요.");
return false;
}
if (password == "") {
alert("비밀번호를 입력해주세요.");
return false;
}
if (confirmPassword == "") {
alert("비밀번호 확인을 입력해주세요.");
return false;
}
if (password !== confirmPassword) {
alert("비밀번호와 비밀번호 확인이 일치하지 않습니다.");
return false;
}
if (!validatePassword(password)) {
alert("비밀번호는 영문, 숫자, 특수기호를 포함하여 8자리 이상으로 구성되어야 합니다.");
return false;
}
return true;
}
</script>
</head>
<body>
<h2>Validation Example</h2>
<form name="validationForm" action="validation_process.jsp" method="post" onsubmit="return validateForm()">
아이디: <input type="text" name="username"><br>
비밀번호: <input type="password" name="password"><br>
비밀번호 확인: <input type="password" name="confirmPassword"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Validation Processing</title>
</head>
<body>
<h2>Validation Processing</h2>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String confirmPassword = request.getParameter("confirmPassword");
boolean isValidPassword(String password) {
boolean hasLetter = password.matches(".*[a-zA-Z].*");
boolean hasDigit = password.matches(".*\\d.*");
boolean hasSpecialChar = password.matches(".*[!@#$%^&*(),.?\":{}|<>].*");
boolean isValidLength = password.length() >= 8;
return hasLetter && hasDigit && hasSpecialChar && isValidLength;
}
if (username == null || username.isEmpty()) {
out.println("<script>alert('아이디를 입력해주세요.'); history.back();</script>");
} else if (password == null || password.isEmpty()) {
out.println("<script>alert('비밀번호를 입력해주세요.'); history.back();</script>");
} else if (confirmPassword == null || confirmPassword.isEmpty()) {
out.println("<script>alert('비밀번호 확인을 입력해주세요.'); history.back();</script>");
} else if (!password.equals(confirmPassword)) {
out.println("<script>alert('비밀번호와 비밀번호 확인이 일치하지 않습니다.'); history.back();</script>");
} else if (!isValidPassword(password)) {
out.println("<script>alert('비밀번호는 영문, 숫자, 특수기호를 포함하여 8자리 이상으로 구성되어야 합니다.'); history.back();</script>");
} else {
out.println("아이디: " + username + "<br>");
out.println("비밀번호: " + password + "<br>");
}
%>
</body>
</html>
'프로그래밍 > JSP' 카테고리의 다른 글
[쉽게 배우는 JSP 웹 프로그래밍 개정2판] 14장 연습 문제, 소스 코드 (2) | 2024.06.08 |
---|---|
[쉽게 배우는 JSP 웹 프로그래밍 개정2판] 13장 연습 문제, 소스 코드 (0) | 2024.06.07 |
[쉽게 배우는 JSP 웹 프로그래밍 개정2판] 7장 설명, 연습 문제 (0) | 2024.06.05 |
[쉽게 배우는 JSP 웹프로그래밍 개정2판] 6장 설명, 연습문제 (0) | 2024.06.04 |
[쉽게 배우는 JSP 웹프로그래밍 개정2판] 5장 설명, 연습문제 (1) | 2024.06.03 |
댓글