본문 바로가기
Web Programing/JAVA

서블릿에서 JSP로 데이터 넘기기 전달 받기 사용 request

by 기록하는 초보 2024. 2. 27.
반응형

서블릿에서 JSP로 데이터를 전송하는 과정은 웹 애플리케이션에서 서버 측 로직을 처리하고, 그 결과를 사용자에게 동적으로 제공할 때 자주 사용됩니다. 이러한 작업은 MVC 패턴의 컨트롤러(Controller) 역할을 하는 서블릿(Servlet)과 뷰(View) 역학을 하는 JSP 사이에서 이루어집니다.

 

서블릿에서 데이터 넘기기

서블릿은 MVC패턴에서 컨트롤러 역할로 비즈니스 로직을 수행하고 데이터를 생성 또는 조회합니다. 서블릿에서 JSP로 데이터를 전달하는 방법은 여러 가지가 있지만, 일반적으로 사용하는 방법은 request 객체를 사용하여 데이터를 담아서 JSP로 전달하는 것입니다.

//서블릿 예시
protected void doGet(HttpServletRequest request, HttpServletResoinse response) throes ServletException, IOException{
	//데이터 처리
    String message = "hello, JSP!";
    
    //request 객체에 데이터 설정
    request.setAttribute("greeting", message);
    
    //JSP 페이지로 요청을 전달하기 위한 RequestDispatcher 생성
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/response.jsp");
    dispatcher.forward(request, response); //여청과 응답 객체를 함께 전달
}

 

JSP에서 데이터 받기

넘겨받는 데이터에 접근하기 위해서 JSP 페이지에서 request.getAttribute 메서드를 사용하여 서블릿에서 넘겨주는 데이터를 꺼냅니다. 받은 데이터를 HTML 내에서 표시하거나 추가적인 처리를 진행할 수 있습니다.

<%--JSP 페이지 --%>
<%
String dataVar = (String) request.getAttribute("greeting");
%>
<html>
<head>
	<title>JSP 페이지</title>
</head>
<body>
    <!-- JSP 페이지의 HTML에 데이터를 출력합니다 -->
    <p>Data from the Servlet : <%= dataVar %></p>
</body>
</html>

 

이 과정을 통해 서블릿에서 JSP 페이지로 데이터를 쉽게 전달하고, JSP 페이지에서 이 데이터를 사용하여 사용자에게 보여줄 수 있습니다. JSP와 서블릿이 동일한 콘텍스트 내에서 실행되므로, 이 방식으로 객체를 포워드 할 때 객체의 참조가 전달되기 때문에 실제 객체가 복사되지 않습니다. 이 점은 서블릿과 JSP 간의 데이터 전송에서 성능상의 이점을 제공합니다. 또한 서블릿과 JSP 사이에는 세션(session)을 통해 데이터를 공유받는 방법도 있습니다. 세션을 사용하면 다수의 요청과 응답 사이에서 데이터를 유지할 수 있습니다. 그러나 세션은 사용자마다 별도로 유지되므로 사용자 인증, 사용자 설정등의 목적으로도 활용됩니다.

반응형