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

2022. 1. 31. 06:42·Back/JSP

웹사이트에서 로그인을 할 때 전송 데이터에 대해 유효성 검사를 하는 경우가 많다.

이런 기능은 자바스크립트로 구현한다.

 

서블릿에 요청할 때 <form>태그에서 직접 요청하는 것이 아니라 자바스크립트 함수르 호출하고 유효성 검사를 한 후 자바스크립트 함수에서 서블릿에 요청하는 예제 실습을 했다

login.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
		
	<script type="text/javascript">
			
		function fn_validate() {				
            //<form> 태그의 name 속성으로 <form>태그 객체를 받아온다.
            var formLogin = document.formLogin;

            //<form>태그 내 <input>태그의 속성으로 입력한 ID와 비밀번호를 받아온다
            var user_id = formLogin.user_id.value;
            var user_pw = formLogin.user_pw.value;

            if((user_id=="" || user_pw =="") || (user_id.length == 0 || user_pw.length == 0)){
                alert("아이디와 비밀번호를 입력해주세요.");				
            }
            else{
                formLogin.method = "post"; //전송방식 post
                formLogin.action = "login"; //action 속성을 서블릿 매핑 이름으로
                formLogin.submit(); //자바스크립트에서 서블릿으로 전송	
            }			
		}
		</script>		
		<title>로그인</title>
</head>
	
<body>
	<form name="formLogin" 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>

 

 

LoginServlet.java

package sec01.ex01;

import java.io.IOException;
import java.io.PrintWriter;

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;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
	
	//초기화
	public void init(ServletConfig config) throws ServletException {
		System.out.println("init 메소드 호출");
	}
	
	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 add = 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 += "주소: " + add;
		data += "</body>";
		data += "</html>";
		
		out.print(data);
			
	}
	
	public void destroy() {
		System.out.println("destroy 메소드 호출");	
	}

}

 

ID와 비밀번호를 입력하기 않고 로그인 버튼을 클릭하면 오류 창이 나타난다.

 

 

ID와 비밀번호를 정상적으로 입력한 경우에는 웹 브라우저로 입력값을 출력한다.

 

저작자표시 (새창열림)

'Back > JSP' 카테고리의 다른 글

서블릿의 비즈니스 로직 처리 방법  (0) 2022.01.31
Port 8080 required by Tomcat v9.0 Server at localhost is already in use. 오류  (0) 2022.01.31
서블릿의 응답 처리 방법  (0) 2022.01.31
이클립스 Run On Server [Choose an existing server] 비활성화 돼있을 때  (0) 2022.01.31
Servlet의 세가지 기능  (0) 2022.01.31
'Back/JSP' 카테고리의 다른 글
  • 서블릿의 비즈니스 로직 처리 방법
  • Port 8080 required by Tomcat v9.0 Server at localhost is already in use. 오류
  • 서블릿의 응답 처리 방법
  • 이클립스 Run On Server [Choose an existing server] 비활성화 돼있을 때
soyeon26
soyeon26
  • soyeon26
    개발 일지
    soyeon26
  • 전체
    오늘
    어제
    • 분류 전체보기 (107)
      • Web (22)
        • Web (1)
        • HTTP (0)
      • Language (29)
        • Java Script (3)
        • Type Srcipt (1)
        • Java (25)
      • Front (19)
        • HTML+CSS (4)
        • React (15)
      • Back (41)
        • Spring(Springboot) (9)
        • JSP (21)
        • Database (5)
        • NestJS (6)
      • Devops (6)
        • Docker (1)
        • Git & SVN (5)
      • App (7)
        • Android (7)
      • IT 정보 (3)
  • 블로그 메뉴

    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Next.js
    React Next.js
    과학기술인 등록
    백엔드
    강의 후기
    자바스크립트set
    csrvsssr
    과학기술인 등록번호 발급
    sql강의
    java의 정석
    Java
    Spring
    Next.js 필요성
    SQL강의 추천
    과학기술인등록번호 조회
    javascript
    서블릿
    과학기술인번호 조회
    중복제거
    SSR
    React
    김영한
    프론트엔드
    springboot
    강의후기
    스프링부트
    csr과ssr의 차이
    데이터베이스 강의
    인프런
    과학기술인 번호 발급
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
soyeon26
자바스크립트로 서블릿에 요청하기
상단으로

티스토리툴바