JSP/이론

서블렛에서 ServletContext sc = this.getServletContext();

SEOKIHOUSE 2023. 6. 27. 12:23

package servlets;

import java.io.IOException;

import javax.servlet.ServletConfig;
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;

@WebServlet("/context1")
public class context1 extends HttpServlet {
	private static final long serialVersionUID = 1L;
	ServletContext sc;

	public void init(ServletConfig config) throws ServletException {
		sc = config.getServletContext();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String driver = sc.getInitParameter("MariaDriver");
		System.out.println(driver);
	}

}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>0627practice</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
  
  
  <!-- contextparam은 application영역에 저장하는 것 -->
  <context-param>
  	<param-name>MariaDriver</param-name>
  	<param-value>org.mariadb.jdbc.Driver</param-value>
  </context-param>
  
  <context-param>
  	<param-name>MariaUrl</param-name>
  	<param-value>jdbc:mariadb://localhost:3306/green01</param-value>
  </context-param>
  
  <context-param>
  	<param-name>MariaId</param-name>
  	<param-value>root</param-value>
  </context-param>
  
  
  <context-param>
  	<param-name>MariaPw</param-name>
  	<param-value>1234</param-value>
  </context-param>
</web-app>

 

package common;

import lombok.Data;

@Data
public class ShareObj {
	private int num;
	private String str;
	
}
package servlets;

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;

import common.ShareObj;

@WebServlet("/context2")
public class context2 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		ServletContext sc = this.getServletContext();
		
		ShareObj obj1 = new ShareObj();
		obj1.setNum(100);
		obj1.setStr("객체 공유 테스트 -1");
		sc.setAttribute("data1", obj1);
		
		ShareObj obj2 = new ShareObj();
		obj2.setNum(100);
		obj2.setStr("객체 공유 테스트 -1");
		sc.setAttribute("data2", obj2);
		
		out.print("ServletContext 객체에 데이터 등록을 하였습니다");
		out.close();
	}

}

위에꺼 실행하고 이거 실행하면 된다

package servlets;

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;

import common.ShareObj;

@WebServlet("/context3")
public class context3 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out =response.getWriter();
		
		ServletContext sc = this.getServletContext();
		
		ShareObj obj1 = (ShareObj)sc.getAttribute("data1");
		ShareObj obj2 = (ShareObj)sc.getAttribute("data2");
		
		out.print("DATA 1 : "+obj1.getNum() + ", " + obj1.getStr() +"<br>");
		out.print("DATA 2 : "+obj2.getNum() + ", " + obj2.getStr() +"<br>");
		out.close();
	}

}