웹 애플리케이션은 클라이언트(사용자)의 요청(request)을 받아 서버가 응답(response)을 보내는 방식으로 작동합니다. JSP는 이러한 요청과 응답을 처리하기 위해 HttpServletRequest와 HttpServletResponse 객체를 제공합니다. 이번 글에서는 request와 response 객체를 활용하는 방법과 이를 사용하는 코드를 분석해보겠습니다.
HttpServletRequest 객체는 클라이언트가 보낸 데이터를 서버에서 처리하기 위한 정보를 제공합니다. 주로 사용자의 입력 데이터를 처리하는 데 사용됩니다.
form.html 코드<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="mSignUp.jsp" method="get">
name: <input type="text" name="m_name"><br>
password: <input type="password" name="m_pass"><br>
hobby:
sport <input type="checkbox" name="m_hobby" value="sport">
cooking <input type="checkbox" name="m_hobby" value="cooking">
travel <input type="checkbox" name="m_hobby" value="travel"><br>
<input type="submit" value="sign up">
</form>
</body>
</html>
<form> 태그:action="mSignUp.jsp": 데이터를 처리할 JSP 페이지를 지정.method="get": GET 방식으로 데이터를 전송.mSignUp.jsp 페이지로 전송합니다.
mSignUp.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>
<%!String m_name;
String m_pass;
String[] m_hobby;%>
<%
// request 객체를 이용해 form 데이터 가져오기
m_name = request.getParameter("m_name"); // 단일 값
m_pass = request.getParameter("m_pass"); // 단일 값
m_hobby = request.getParameterValues("m_hobby"); // 다중 값
%>
<p>m_name: <%= m_name %></p>
<p>m_pass: <%= m_pass %></p>
<p>m_hobby:</p>
<ul>
<%
for (int i = 0; i < m_hobby.length; i++) {
%>
<li><%= m_hobby[i] %></li>
<%
}
%>
</ul>
</body>
</html>
request.getParameter(String name)name, password 등)request.getParameterValues(String name)m_name, m_pass, m_hobby 변수에 저장됩니다.
HttpServletResponse 객체는 서버에서 클라이언트로 데이터를 전송하거나 다른 페이지로 리다이렉트할 때 사용됩니다.
firstPage.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>
<p>First Page!!</p>
<%
// response 객체를 사용하여 페이지 리다이렉트
response.sendRedirect("secondPage.jsp");
%>
</body>
</html>
response.sendRedirect(String location)secondPage.jsp로 페이지 이동이 이루어지며, 클라이언트는 해당 URL로 새로운 요청을 보내게 됩니다.secondPage.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>
<p>Second Page!!</p>
</body>
</html>

getParameter(String name)
request.getParameter("m_name");getParameterValues(String name)
request.getParameterValues("m_hobby");getAttribute(String name)
sendRedirect(String location)
response.sendRedirect("secondPage.jsp");setContentType(String type)
response.setContentType("text/html");getWriter()
HttpServletRequest와 HttpServletResponse는 웹 애플리케이션에서 클라이언트와 서버 간의 데이터 흐름을 처리하는 데 필수적인 객체입니다.
이 두 객체를 잘 활용하면 클라이언트-서버 간의 효율적인 데이터 처리가 가능합니다.