Ex03예제를 활용하여 유효성검사를 활용한 서블릿 연동 방법에 대해 알아보자!
=============================코드=============================
<%@ 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 check(f) { // f는 매개변수
// 아이디 입력 여부를 확인하는 방법
if(f.id.value == "") { // 입력된 값이 비어있다면
alert("회원 아이디를 입력하세요!");
f.id.focus();
return false; // action 페이지로 이동 방지
}
// 비밀번호 입력 여부를 확인하는 방법
if(f.pwd.value == "") { // 입력된 값이 비어있다면
alert("회원 비밀번호를 입력하세요!");
f.pwd.focus();
return false; // action 페이지로 이동 방지
}
// 이름 입력 여부를 확인하는 방법
if(f.name.value == "") { // 입력된 값이 비어있다면
alert("회원 이름을 입력하세요!");
f.name.focus();
return false; // action 페이지로 이동 방지
}
// 연락처 입력 여부를 확인하는 방법
if(f.phone.value == "") { // 입력된 값이 비어있다면
alert("회원 연락처를 입력하세요!");
f.phone.focus();
return false; // action 페이지로 이동 방지
}
// 주소 입력 여부를 확인하는 방법
if(f.addr.value == "") { // 입력된 값이 비어있다면
alert("회원 주소를 입력하세요!");
f.addr.focus();
return false; // action 페이지로 이동 방지
}
f.method = "post";
f.action = "/01_Servlet/member";
f.submit();
}
</script>
</head>
<body>
<div align = "center">
<hr width = "30%" color = "blue">
<h2>회원 정보 입력 폼 페이지</h2>
<hr width = "30%" color = "blue">
<br/> <br/>
<form>
<table border = "1">
<tr>
<th>회원 아이디</th>
<td>
<input type = "text" name = "id">
</td>
</tr>
<tr>
<th>회원 비밀번호</th>
<td>
<input type = "password" name = "pwd">
</td>
</tr>
<tr>
<th>회원 이름</th>
<td>
<input type = "text" name = "name">
</td>
</tr>
<tr>
<th>회원 연락처</th>
<td>
<input type = "text" name = "phone">
</td>
</tr>
<tr>
<th>회원 주소</th>
<td>
<input type = "text" name = "addr">
</td>
</tr>
<tr>
<td colspan = "2" align = "center">
<!-- onclick은 유효성 체크 방법 / 현재 문서의 태그를 넘겨준다! -->
<input type = "button" value = "회원가입" onclick = "check(this.form)">
<input type = "reset" value = "다시작성">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

servlet을 만들어보자!
=============================코드=============================
package goott;
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;
@WebServlet("/member")
public class MemberServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public MemberServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Ex03.jsp 페이지에서 넘어온 정보들을 받아 주자
// 입력된 정보 중에 한글이 있다면 깨짐 현상이 발생할 수 있음
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset = UTF-8");
String member_id = request.getParameter("id");
String member_pwd = request.getParameter("pwd");
String member_name = request.getParameter("name");
String member_phone = request.getParameter("phone");
String member_addr = request.getParameter("addr");
// 웹 브라우저로 응답해 주면 됨
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head></head>");
out.println("<bodyl>");
out.println("<div align = 'center'>");
out.println("<h2>회원 정보</h2>");
out.println("<table border = '1'>");
out.println("<tr>");
out.println("<th>회원 아이디</th>");
out.println("<td>" + member_id + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>회원 비밀번호</th>");
out.println("<td>" + member_pwd + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>회원 이름</th>");
out.println("<td>" + member_name + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>회원 연락처</th>");
out.println("<td>" + member_phone + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>회원 주소</th>");
out.println("<td>" + member_addr + "</td>");
out.println("</tr>");
out.println("</table>");
out.println("</div>");
out.println("</body>");
out.println("</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response); // 위의 doget 메서드로 이동한다는 뜻!
}
}

