웹에서 클라이언트에서 서블릿으로 요청하는 방식은 대표적으로 GET과 POST 두 가지 방식으로 나누어 진다.
서버에 존재하는 간단한 페이지를 요청하거나 게시판 글 목록 페이지에서 해당 페이지에 대한 목록 출력을 요청할 때 페이지 번호와 같이 간단한 파라미터를 전송하는 경우 사용되는 방식이다.
★사용방식: <a href="list.jsp?pageNO=2">[2]</a>
<a href="list.jsp">목록보기</a>
<form action="name" method="GET">
단순하게 특정한 페이지를 요청하는 것이 아니라 특정 페이지로 많은 양의 파라미터를 전송하여 파라미터에 관한 처리를 할 때 POST 방식으로 요청을 전송한다. 회원 가입 요청, 게시판 글쓰기 요청, 자료실 업로드 등을 처리할 때 사용하는 방식이 모두 POST 방식에 해당한다. POST 방식으로 요청을 서버로 전송하려면 반드시 Html의 form 태그를 사용하여 method 속성을 POST로 지정하여야 한다.
★사용방식: <form name="action" method="POST">
html의 charset은 UTF-8로 설정해 준다.
<meta charset="UTF-8">
GET 방식은 Servlet의 doGet부분에
response.setContentType("text/html;charset=UTF-8")을 작성해준다.
▶ex
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
String name = request.getParameter("name");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("hangul Process = " + name);
}
POST 방식은 Servlet의 doPost부분에
request.setCharacterEncoding("UTF-8")을 작성해준다.
▶ex)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8"); /*post방식 한글 인코딩*/
String name = request.getParameter("name");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("hangul Process = " + name);
}