입력할 내용이 많은 경우는 POST방식

2020. 5. 17. 14:50웹개발 개인공부

저번 시간에는 사용자에게 값을 입력받게 하고 입력받은 값만큼 안녕하세요를 출력하는 방법에 대해 알아봤었는데 오늘은 만약 사용자에게 입력받을 내용이 많을 경우에 어떻게 할 것인지에 대해 알아볼 것이다.

 

간단하게 제목과 내용 이 두가지를 입력받게 하는 프로그램을 만들어보자

<! DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> Insert title here </title>
</head>
<body>
<div>
<form action="notice-reg">
<div>
<label>제목:</label><input name="title" type="text">
</div>
<div>
<label>내용:</label>
<textarea name="content"></textarea>
</div>
<div>
<input type="submit" value="등록" />
</div>
</form>
</div>
</body>
</html>

 

그런 다음 notice-reg를 매핑하는 서블릿 코드를 또 만들어야 한다. 

 

@WebServlet("/notice-reg") 
public class NoticeReg extends HttpServlet {
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");

PrintWriter out = response.getWriter();

String title = request.getParameter("title");
String content = request.getParameter("content");

out.println(title);
out.println(content);
}
}

 

이렇게 하고 실행을 시켜보면 

이런 화면이 나타나게 된다. 그리고 저기에 내용을 입력받으면

이렇게 잘 나온다. 그런데 url을 보니 사용자가 입력한 제목과 내용이 그대로 노출되고 있다. 게다가 내용란에 입력된 값은 또 너무 길어서 다 나오지도 않는다. 이걸 해결하기 위해 post방식을 이용할 것이다.

아까 작성했던 html파일에서 method="post"라는 문구를 넣어준다. 그러면 post방식을 이용해 값을 전달하게 된다.

 

url이 깔끔해졌다.

 

그런데 만약 한글을 입력한다면 ?

한글이 깨져버렸다. 이거에 대한 해결방법은 다음에 알아보도록 하자.

'웹개발 개인공부' 카테고리의 다른 글

CGI와 Perl  (0) 2020.05.19
웹서버 (NGINX, APACHE)  (0) 2020.05.19
사용자 입력을 통한 GET요청  (0) 2020.05.15
기본값 사용하기  (0) 2020.05.14
응용 프로그래머와 웹 프로그래머  (0) 2020.05.13