728x90
ServletContext 바인딩은 getServletContext( ) 메서드를 이용해 ServletContext 객체에 접근한 다음 ArrayList에 이름과 나이를 저장한 후 다시 ServletContext 객체에 setAttribute( ) 메서드를 이용해 바인딩하는 방식으로 진행된다.
// SerServletContext.java
package sec05.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SetServletContext
*/
@WebServlet("/cset")
public class SetServletContext extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
ServletContext context = getServletContext(); // ServletContext 객체를 가져옴
List member = new ArrayList();
member.add("이순신");
member.add(30);
context.setAttribute("member", member); // ServletContext 객체에 데이터를 바인딩
out.print("<html><body>");
out.print("이순신과 30 설정");
out.print("</html></body>");
}
}
// GetServletContext.java
package sec05.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class GetServletContext
*/
@WebServlet("/cget")
public class GetServletContext extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
ServletContext context = getServletContext(); // ServletContext 객체를 가져옴
List member = (List) context.getAttribute("member"); // member로 이전에 바인딩된 회원 정보를 가져옴
String name = (String) member.get(0);
int age = (Integer) member.get(1);
out.print("<html><body>");
out.print(name + "<br>");
out.print(age + "<br>");
out.print("</html></body>");
}
}
getServletContext( ) 메서드를 이용해 ServletContext 객체에 접근한다. 그리고 getAttribute( ) 메서드를 이용해 다른 서블릿에서 바인딩 한 ArrayList를 가져와 회원 정보를 출력한다.
ServletContext에 바인딩 된 데이터는 모든 서블릿들(사용자)이 접근할 수 있다. 따라서 웹 애플리케이션에서 모든 사용자가 공통으로 사용하는 데이터는 ServletContext에 바인딩해놓고 사용하면 편리하다.
728x90
'웹 개발 기초 > 자바 웹을 다루는 기술' 카테고리의 다른 글
ServletContext의 파일 입출력 기능 (0) | 2023.02.20 |
---|---|
ServletContext의 매개변수 설정 기능 (0) | 2023.02.20 |
ServletContext 클래스 (0) | 2023.02.20 |
두 서블릿 간 회원 정보 조회 바인딩 실습 (0) | 2023.02.20 |
HttpServletRequest를 이용한 dispatch 포워딩 시 바인딩 (0) | 2023.02.18 |