웹 개발 기초/자바 웹을 다루는 기술

자바스크립트로 서블릿에 요청하기

sungw00 2023. 2. 15. 16:33
728x90

자바스크립트로 유효성 검사하기

유효성 검사는 서블릿에 요청할 때 <form> 태그에서 직접 요청하는 것이 아닌, 자바스크립트 함수를 호출하고 유효성 검사를 한 후 자바스크립트 함수에서 서블릿에 요청하는 방식으로 진행해야 한다.

// login2.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
	function fn_validate() {
		var frmLogin = document.frmLogin;
		var user_id = frmLogin.user_id.value;
		var user_pw = frmLogin.user_pw.value;
		
		if ((user_id.length == 0 || user_id == "") || (user_pw.length == 0 || user_pw == "")) {
			alert("아이디와 비밀번호는 필수입니다.");
		} else {
			frmLogin.method = "post";
			frmLogin.action = "login5";
			frmLogin.submit();
		}
	}
</script>
<title>로그인창</title>
</head>
<body>
	<form name="frmLogin" method="post" action="login" encType="UTF-8">
		아이디 : <input type="text" name="user_id"><br>
		비밀번호 : <input type="password" name="user_pw"><br>
		<input type="button" onClick="fn_validate()" value="로그인">
		<input type="reset" value="다시 입력">
		<input type="hidden" name="user_address" value="서울시 성북구" />
	</form>
</body>
</html>
// LoginServlet5.java
package sec03.ex03;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
/**
 * Servlet implementation class LoginServlet5
 */
@WebServlet("/login5")
public class LoginServlet5 extends HttpServlet {
	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		System.out.println("init 메서드 호출");
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		System.out.println("destroy 메서드 호출");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");
		PrintWriter out = response.getWriter();
		String id = request.getParameter("user_id");
		String pw = request.getParameter("user_pw");
		String address = request.getParameter("user_address");
		System.out.println("아이디 : " + id);
		System.out.println("비밀번호 : " + pw);
		
		String data = "<html>";
		data += "<body>";
		data += "아이디 : " + id;
		data += "<br>";
		data += "비밀번호 : " + pw;
		data += "<br>";
		data += "주소 : " + address;
		data += "</body>";
		data += "</html>";
		out.print(data);
	}

}

ID와 비밀번호를 정상적으로 입력한 경우
ID와 비밀번호를 정상적으로 입력하지 않은 경우

 

728x90