개인정보, 대용량 데이터 사용한다.
넘어간 값이 입력값을 url에 붙여서 보내는 방식이 아니라 보이지 않고, 한글이 깨진다.
get방식과 달리<form>
에method
를 생략할 수 없고, 적어줘야한다.method = "post"
name
속성을 사용한다.
✍️예시
<body>form.jsp<br>
<h1>post방식</h1>
<form action="postMethod.jsp" method="post">
<input type="text" name="id" placeholder="input id"><br>
<input type="password" name="pwd" placeholder="input password"><br>
<input type="submit" value="전송">
</form>
</body>
request를 사용해도 되고, el 문법인 param도 가능하다.
🧩 request.getParameter
🧩 ${param.받아올 값}
<body>postMethod.jsp<br>
<h1>postMethod 입니다</h1>
아이디 : <%= request.getParameter("id") %><br>
비밀번호 : <%= request.getParameter("pwd") %>
<hr>
${param.id }<br>
${param.pwd }<br>
</body>
post
방식이기 때문에 넘어간 값이 url에 붙지 않아 보이지 않는다.
get 방식은 한글이 깨지지 않지만, post 방식은 한글 깨짐이 발생한다.
get
방식은 아이디로 한글을 입력해도 값이 잘 넘어간다.
하지만 post
방식은 아이디로 한글을 입력하니 깨지는 현상이 발생한다.
🧩방법1.
<% request.setCharacterEncoding("utf-8"); %>
🧩방법2.
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:requestEncoding value="utf-8"/>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
...
<body>postMethod.jsp<br>
<fmt:requestEncoding value="utf-8"/>
...
</body>
prefix="fmt"
: 별칭을 fmt로 하겠다.