BackEnd/Java

[Servlet/JSP] Servlet을 이용한 예제

Hojung7 2024. 8. 16. 10:54

[HTML]

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Servlet 복습</title>
</head>
<body>
  <h1>Servlet 복습</h1>

  <form action="/login" method="POST">
    <div>
      ID : <input type="text" name = "inputId">
    </div>

    <div>
      PW : <input type="password" name="inputPw">
    </div>
    <div>
      다음 문자를 똑같이 입력하세요 <br>
      <strong>헬로 월드</strong>
      <input type="text" name="check">

    </div>

    <!-- button 태그의 type 기본 값은 "submit" -->

    <button>로그인</button>
    


  </form>
</body>
</html>

 

[Java 1]

package edu.kh.servlet2.controller;

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

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

// 해당 클래스를 Servlet으로 등록 + "/login" 요청 주소 처리하도록 매핑
@WebServlet("/login")
public class LoginServlet  extends HttpServlet{
	
	//"/login" POST 방식 요청을 처리하는 메서드
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		// 요청 시 제출된 값(파라미터) 모두 얻어오기
		String inputId = req.getParameter("inputId");
		String inputPw = req.getParameter("inputPw");
		String check = req.getParameter("check");
		
		System.out.println(inputId);
		System.out.println(inputPw);
		System.out.println(check);

 

#결과

 

아이디    :  user00
비밀번호 : pass00
check      : 헬로 월드

모두 일치하는 경우 -> "로그인 성공"
불일치한 내용이 있을 경우
-> 000이 일치하지 않습니다
 (000은 ID, PW, CHECK)

 

[Java 2]

		String result = ""; // 결과 문자열 저장
		
		if(inputId.equals("user00")
				&& inputPw.equals("pass00")
				&& check.equals("헬로 월드")){
			result = "<h1 style = 'color:red;'> 로그인 성공</h1>";
			
		}else {
			if(!inputId.equals("user00")) {
				result += "<h3> ID가 일치하지 않습니다</h3>";
			}
			if(!inputPw.equals("pass00!")) {
					result += "<h3> PW가 일치하지 않습니다</h3>";
			}		
			if(!check.equals("헬로 월드")) {
						result += "<h3> CHECK가 일치하지 않습니다</h3>";
						
			}
		}

 

<응답하기>

        // 응답되는 문서의 형식, 문자 인코딩 지정
		resp.setContentType("text/html; charset=utf-8");
		
		// 클라이언트와 연결된 출력용 스트림 얻어오기
		PrintWriter out = resp.getWriter();
		
		// 출력할 HTML 작성하기
		StringBuilder sb = new StringBuilder();
		
		sb.append("""
				<!DOCTYPE html>
				<html>
				<head>
					<title>로그인 결과 페이지 </title>
				</head>
				<body>""");
		
		sb.append(result);
		
		sb.append("</body>");
		sb.append("</html>");
		
		out.write(sb.toString()); // 클라이언트에게 출력
						        	// == 서버 응답

 

#결과

→ 비밀번호만 다르게 입력 했을 경우 위와 같이 출력

→ 모두 맞게 입력했을 우 위와 같이 출력