[Web] 서블릿의 기능 : 요청 - form 태그로 서블릿에 요청하기

2024. 8. 5. 22:08자바 웹 개발/서블릿 기초

<form> 태그의 여러 가지 속성

//login.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>로그인 창</title>
</head>
<body>
    <form name="frmLogin" method="get" action="login" enctype="UTF-8">
        아이디 : <input type="text" name="user_id"><br>
        비밀번호 : <input type="password" name="user_pw"><br>
        <input type="submit" value="로그인"><input type="reset" value="다시입력">
    </form>
</body>
</html>

아래는 <form> 태그의 속성과 기능이다. 

name -<form> 태그의 이름을 지정한다. 
-여러 개의 from이 존재할 경우 구분하는 역할을 한다. 
method  데이터를 전송하는 방법을 지정한다. 
GET 또는 POST로 지정한다. (생략시 GET)
action 데이터를 전송할 서블릿이나 JSP를 지정한다. 
서블릿으로 전송할 때에는 매핑 이름을 사용한다. 
encType 데이터의 encoding 타입을 지정한다. 
파일을 업로드할 때는 multipart/form-data로 지정한다. 

 

'로그인'을 입력하면 지정된 이름이 login인 서블릿으로 ID와 비밀번호가 전송된다. 

 

주의할 점은 input의 name 속성값과 실제 입력한 데이터가 쌍으로 전송된다. 

user_id/lee

user_pw/1234 

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
  @Override
  public void init() throws ServletException {
    System.out.println("init 메서드 호출");
  }

  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    String user_id = request.getParameter("user_id");
    String user_pw = request.getParameter("user_pw");
    System.out.println("아이디: " + user_id);
    System.out.println("패스워드: " + user_pw);
  }

  @Override
  public void destroy() {
    System.out.println("destroy 메서드 호출");
  }
}

 

 

아직 화면을 구현하지 않아서 빈 화면이 나오지만 콘솔에는 요청 내용을 전달받았다는 것을 확인할 수 있다.