application scope - accidentlywoo/legacyVue GitHub Wiki

application scope

  • λ“€μ–΄κ°€κΈ° 전에 ν•˜λ‚˜μ˜ μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ κ³΅μœ ν•˜κ³  싢은 λ³€μˆ˜κ°€ μžˆμ„ λ•Œ application scopeλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 이번 μ‹œκ°„μ—” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μŠ€μ½”ν”„μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

ν•™μŠ΅ λͺ©ν‘œ

  1. application scope λ₯Ό μ΄ν•΄ν•œλ‹€.
  2. application scope λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

핡심 κ°œλ…

  • ServletContext
  • setAttribute
  • getAttribute

ν•™μŠ΅ν•˜κΈ°

Application Scope

  • μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹œμž‘λ˜κ³  μ’…λ£Œλ  λ•ŒκΉŒμ§€ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.
  • ServletContext μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ 객체λ₯Ό μ‚¬μš©ν•œλ‹€.
  • JSPμ—μ„œλŠ” application λ‚΄μž₯ 객체λ₯Ό μ΄μš©ν•œλ‹€.
  • μ„œλΈ”λ¦Ώμ˜ κ²½μš°μ—λŠ” getServletContext() λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ application 객체λ₯Ό μ΄μš©ν•œλ‹€.
  • μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ ν•˜λ‚˜λ‹Ή ν•˜λ‚˜μ˜ application 객체가 μ‚¬μš©λœλ‹€.
  • 값을 μ €μž₯ν•  λ•ŒλŠ” application 객체의 setAttribute() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.
  • 값을 읽어 듀일 λ•ŒλŠ” application 객체의 getAttribute() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.
  • λͺ¨λ“  ν΄λΌμ΄μ–ΈνŠΈκ°€ κ³΅ν†΅μœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν•  겂듀이 μžˆμ„ λ•Œ μ‚¬μš©ν•œλ‹€.

μ‹€μŠ΅ μ½”λ“œ

ApplicationScope01.java `package examples;

import java.io.IOException; import java.io.PrintWriter;

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 ApplicationScope01 */ @WebServlet("/ApplicationScope01") public class ApplicationScope01 extends HttpServlet { private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet() */ public ApplicationScope01() { super(); // TODO Auto-generated constructor stub }

    /**

    • @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 application = getServletContext(); int value = 1; application.setAttribute("value", value);

      out.println("

      value : " + value + "

      ");

    }

}`

ApplicationScope02.java `package examples;

import java.io.IOException; import java.io.PrintWriter;

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 ApplicationScope01 */ @WebServlet("/ApplicationScope02") public class ApplicationScope02 extends HttpServlet { private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet() */ public ApplicationScope02() { super(); // TODO Auto-generated constructor stub }

    /**

    • @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 application = getServletContext();

      try { int value = (int)application.getAttribute("value"); value++; application.setAttribute("value", value); out.println("

      value : " + value + "

      "); }catch(NullPointerException ex) { out.println("valueκ°€ μ„€μ •λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."); }

    }

}`

applicationscope01.jsp

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

<title>Insert title here</title> <% try{ int value = (int)application.getAttribute("value"); value = value + 2; application.setAttribute("value", value); %>

<%=value %>

<% }catch(NullPointerException ex){ %>

μ„€μ •λœ 값이 μ—†μŠ΅λ‹ˆλ‹€.

<% } %> `

생각해보기

  1. μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μŠ€μ½”ν”„μ— List 객체λ₯Ό μ €μž₯ν–ˆμŠ΅λ‹ˆλ‹€. 이 List 객체에 주기적으둜 값이 μ €μž₯은 λ˜μ§€λ§Œ, μ‚­μ œλŠ” λ˜μ§€ μ•Šκ³  μžˆμŠ΅λ‹ˆλ‹€. 이 경우 μ–΄λ–€ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμ„κΉŒμš”?
⚠️ **GitHub.com Fallback** ⚠️