프로그래밍 언어/자바 웹

ServletContext의 매개변수 설정 기능

· 코딩마이데이

1. 다음과 같이 ContextParamServlet 클래스 파일과 web.xml 파일을 준비합니다.

실습 파일 위치

 

2. web.xml에 메뉴 항목을 설정합니다. <context-param> 태그 안에 <param-name> 태그와 <param-value> 태그를 이용해 메뉴에 대한 하위 메뉴 항목을 설정합니다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
	<context-param>
		<param-name>menu_member</param-name>
		<param-value>회원등록  회원조회 회원수정</param-value>
	</context-param>
	<context-param>
		<param-name>menu_order</param-name>
		<param-value>주문조회  주문등록 주문수정 주문취소</param-value>
	</context-param>
	<context-param>
		<param-name>menu_goods</param-name>
		<param-value>상품조회  상품등록 상품수정 상품삭제</param-value>
	</context-param>
</web-app>

 

3. ContextParamServlet 클래스를 다음과 같이 작성합니다. getServletContext() 메서드로 ServletContext 객체에 접근합니다. 그리고 getInitParameter() 메서드의 인자로 각각의 메뉴 이름을 전달한 후 메뉴 항목들을 가져와 이를 브라우저로 출력합니다.

package sec05.ex02;

import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/initMenu")
public class ContextParamServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		ServletContext context = getServletContext();
		String menu_member = context.getInitParameter("menu_member");
		String menu_order = context.getInitParameter("menu_order");
		String menu_goods = context.getInitParameter("menu_goods");
		
		out.print("<html><body>");
		out.print("<table border=1 cellspacing=0><tr>메뉴 이름</tr>");
	    out.print("<tr><td>" + menu_member + "</td></tr>");
	    out.print("<tr><td>" + menu_member + "</td></tr>");
	    out.print("<tr><td>" + menu_order + "</td></tr>");
	    out.print("<tr><td>" + menu_goods + "</td></tr>");
	    out.print("</tr></table></body></html>");
	}
}

 

4. 크롬 브라우저에서 http://localhost:8090/pro08/initMenu로 서블릿을 요청합니다.

크롬에서 initMenu로 요청한 결과

 

5. Micoflow Edge에서도 요청해 봅니다.

Microflow Edge에서 /initMenu로 요청한 결과

 

모든 브라우저에서 같은 메뉴를 출력하는 것을 확인할 수 있습니다. 즉, 메뉴는 ContextServlet 객체를 통해 접근하므로 모든 웹 브라우저에서 공유하면서 접근할 수 있습니다.

'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글

ServletConfig  (0) 2025.06.29
ServletContext의 파일 입출력 기능  (1) 2025.06.24
ServletContext 사용법  (1) 2025.06.18
바인딩  (1) 2025.06.15
dispatch를 이용한 포워드 방법  (1) 2025.06.12