핫돌의 잡 지식 놓는 곳

언젠가 사용할지도 모르는 JSP GET방식과 POST방식

핫돌 2024. 6. 27. 00:33
728x90
반응형

GET방식과 POST방식

클라이언트가 서버에게 요청을 하면서 파라미터를 같이 전송한다.

GET전송방식:URL(주소)에 파라미터를 추가하여 요청하는 방식

http://주소...? 이름=&이름=&이름=...

*길이제한이 있다.

*어떠한 값이 전달되는 지 사용자가 볼 수 있다.

*<form...method = "get">

get방식은 보통 게시판 글을 조회하거나 인터넷기사 쇼핑몰의 상품을 확인할 때 사용한다.

사용자가 서버에게 무언가를 요청할 때 (나는 ##을 하고 싶어)하고 할 때 정보를 같이 넘기는 것.

GET방식 검색 결과.

POST전송방식:HTTP requestbody(본문)에 파라미터를 추가하는 방식

*길이제한이 없다.

*어떠한 값이 전달되는 지 사용자가 볼 수 없다.

*<form ... method = "post">

언제 GET을 쓰고 언제 POST를 쓸까?

GET:조회(게시판 글, 인터넷 기사 등)

POST:서버 송신(회원가입, 게시판 글 등록/수정), 비밀번호 등의 보안이 필요한 파라미터

일단, 폴더와 JSP파일을 만들어 줍니다.

밑에는 html소스코드입니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--GET TEST-->
<form action = "test01_result.jsp" method = "get">
이름<input type = "text" name = "user_name"><br>
나이<input type = "number" name = "user_age"><br>
<input type = "submit">
</form>
</body>
</html>

밑에는 JSP소스코드입니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= request.getParameter("user_name") %><br>
<%= request.getParameter("user_age") %>
</body>
</html>
지금 보여드린 방식은 GET방식이고 클라이언트와 서버가 어떻게 주고 받는지 알 수가 있습니다.

입력을 하면 위에 설명처럼 ?와 이름= &이름 순차적으로 쓰이며 해당 서버에 어떻게 전달 되는 지 볼 수가 있습니다.

post전달 방식 소스코드.


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--POST TEST-->
<form action = "test02_result.jsp" method = "post">
이름<input type = "text" name = "user_name"><br>
나이<input type = "number" name = "user_age"><br>
<input type = "submit">
</form>
</body>
</html>

post전달 방식 소스코드.

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<% request.setCharacterEncoding("utf-8"); //post 방식으로 받은 파라미터는 무조건 글자가 깨질 수 있다. %>

<%= request.getParameter("user_name") %><br>

<%= request.getParameter("user_age") %>

</body>

</html>

제 페이지에서는 깨지지 않았지만 <% request.setCharacterEncoding("utf-8");%>를 쓰지 않으면 글자가 깨지거나 화면이 일부 나오지 않습니다.

밑에 있는 사진은 post방식에는 주소가 어떻게 전달되는지 보이지 않는 부분을 보여드리겠습니다.

get방식에는 있었지만 post방식에는 보이지 않습니다.

 

 

************* 컴퓨터 공학부가 모두 잘 되는 날이 왔으면 좋겠습니다. *************
*************틀린 부분이 있다면 말씀해주신다면. 정정 하도록 노력겠습니다. *************

728x90
반응형