Form태그는 사용자 입력값을 포함한 새로운 요청을 만들어 서버에 전송하는 태그입니다.물론 태그 그 자체로 운용되는 것이 아니라 Form태그에 속성을 적어줘야 사용이 가능합니다. 해당 속성에는 method와 action을 사용할 수 있습니다.
<!-- 1) GET방식 -->
<form action="result.jsp">
<p><input type="text" name="name" placeholder="이름 입력"></p>
<p><input type="number" name="age" placeholder="나이 입력"></p>
<p><input type="submit"></p>
</form>
<!-- 2) POST방식 -->
<form method="POST">
<p><input type="text" name="name" placeholder="이름 입력"></p>
<p><input type="number" name="age" placeholder="나이 입력"></p>
<p><input type="submit"></p>
</form>
method는 GET, POST, HEAD, PUT, PATCH, DELETE... 등의 요청방식을 사용할 수 있지만 Form태그에서는 GET, POST, HEAD 만 사용이 가능합니다.또한 1)번의 GET방식은 Form태그의 'default값' 이기 때문에 생략하더라도 해당 방식이 적용됩니다.
GET방식은 클라이언트의 입장에서 데이터를 받기 위해 사용하는 메서드로 파라미터가 주소창을 통해 전달됩니다.즉, 파라미터를 쿼리스트링 형태로 전달할 수 없다는 의미가 됩니다. 이러한 방식은 물론 값을 전달하는 행위 자체에 대한 문제는 없으나 해당 데이터의 내용이 주소창에 드러나게 된다는 큰 단점을 지니게 됩니다.
POST방식은 클라이언트가 입력하는 데이터를 서버(혹은 DB)에 만들기 위한 메서드로 입력받는 내용은 주소창을 통하여 전달하지 않습니다.따라서 GET방식과는 다르게 보안적인 면에서 우위를 가지고 있습니다.
action은 해당 Form태그의 실행으로 인하여 이동할 경로를 지정하는 역할을 수행하게 됩니다.
<form method="POST" action="result.jsp">
<p><input type="text" name="userid" placeholder="ID" required autofocus></p>
<p><input type="password" name="userpw" placeholder="Password" required></p>
<p><input type="submit" value="로그인"></p>
</form>
<※ 화면구현은 다음과 같습니다.>