Web Programming/JSP

[JSP] 서블릿의 요청 방식

IT수정 2024. 10. 7. 10:04

브라우저에서 페이지 간에 통신할 수 있는 대표적인 방법은 form에서 제공되는 get 방식과 post 방식이 있다. 이 두 방식은 form을 통해서 보내는 것은 같지만 전송되는 방식은 상이하다. get 방식은 url을 통해서 전송되지만 post는 html 헤더에 요청 정보와 같이 전달된다.

 

get 방식

일반적으로 검색이나 조건을 다른 페이지로 전송할 때 사용하는 방식이다. 그리고 get 방식으로 요청을 하면 url에 노출이 되는 특징이 있기 때문에 보안적인 내용은 절대 get 방식으로는 사용하면 안 된다.

 

getJsp.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>
	<h1>Get Servlet 방식</h1>
	<form method="get" action="GetServlet">
	msg : <input name="msg">
	<input type="submit" value="전송">
	</form>
</body>
</html>

 

GetServlet.java

package ch08;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

@WebServlet("/ch08/GetServlet")
public class GetServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String msg = request.getParameter("msg");
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<body>");
		out.println("<h1>Get Servlet 방식</h1>");
		out.println("<h2>msg : " + msg + "</h2>");
		out.println("</body>");
		out.println("</html>");
}
}

 

출력 결과

 

post 방식

브라우저에서 게시판에 글을 입력하거나 또는 회원가입을 하는 기능으로 다른 페이지에 전송할 때 사용하는 방식이다. get 방식과 다르게 url 상에 노출되지 않고 html 헤더 값이 전송된다.

 

postJsp.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>
	<h1>Post Servlet 방식</h1>
	<form method="post" action="ch08/PostServlet">
	id : <input name="id"><br/>
	pwd : <input type="password" name="pwd"><br/>
	email : <input name="email"><br/>
	<input type="submit" value="가입">
	</form>
</body>
</html>

 

PostServlet.java

package ch08;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

@WebServlet("/ch08/PostServlet")
public class PostServlet extends HttpServlet {
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		String id = request.getParameter("id");
		String pwd = request.getParameter("pwd");
		String email = request.getParameter("email");
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<body>");
		out.println("<h1>Post Servlet 방식</h1>");
		out.println("<h3>id : " + id + "</h3>");
		out.println("<h3>pwd : " + pwd + "</h3>");
		out.println("<h3>email : " + email + "</h3>");
		out.println("</body>");
		out.println("</html>");
	}

}

 

출력 결과

 

'Web Programming > JSP' 카테고리의 다른 글

[JSP] 자바빈즈  (0) 2024.10.07
[JSP] 서블릿에서 세션 사용하기  (0) 2024.10.07
[JSP] 서블릿 기초 문법  (1) 2024.10.04
[JSP] 에러 처리  (0) 2024.10.04
[JSP] 예외 내부 객체  (0) 2024.10.04