본문 바로가기

개발자노트/웹

초기화 매개변수 (xml)

[초기화 매개변수]
프로그램을 동작시킬 때 필요한 정보(ex. url, id, pw, ...) 를
소스코드에 하드코딩을 해왔음
그런데 이런 정보들은 프로젝트 중간에 쉽게 변경이 될 수 있음
그래서 이런 정보들을 별도로 환경설정 파일(.xml)에 보관
정보 == 초기화 매개변수

<init-param></init-param> → ServletConfig
  : 해당 서블릿에서 사용가능

<context-param></context-param> → ServletContext
 : 동일한 웹 어플리케이션 내에서의 모든 서블릿에서 사용 가능

★ .xml 을 → @(어노테이션,애너테이션) 으로 바꾸려는 움직임이 많음
과거의 설정파일은 xml에 들어있었지만 , 많이 사용되는 Spring 을 사용하기 위해
@(어노테이션,애너테이션)으로 바꾸려는 움직임이 많음

- 컴파일을 시도할 때 , 어떤 어노테이션들이 있었는지 별도로 기억함
  특정 기능을 수행할 때,
  그에 해당하는 어노테이션이 있었는지를 가장 먼저 확인함
  또는, 
  특정 순간에 반응(모니터링,감지)하는 어노테이션이 있음
  해당 순간에 기능을 수행함


WEB-INF 하위에 xml 파일 생성
: 웹 서버가 시작될 때 참조하는 환경설정 파일

 

 

web.xml 코드

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
	<context-param>
		<param-name>name</param-name>
		<param-value>timo</param-value>
	</context-param>
	
	<context-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</context-param>
	
	<error-page> <!-- 에러페이지 -->
		<exception-type>java.lang.Throwable</exception-type> <!-- 상위 익셉션 -->
		<location>/error/error.jsp</location> 
	</error-page>

	<error-page>
		<error-code>404</error-code> <!-- 404에러만에 대한 에러페이지 설정 -->
		<location>/error/error404.jsp</location>
	</error-page>
</web-app>

 

 

.jsp 코드

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>초기화매개변수</title>
</head>
<body>

name: <%=getServletContext().getInitParameter("name") %> <br>
encoding: <%=application.getInitParameter("encoding") %>
<!-- ServletContext는 웹 서버 단위로 동작하고 있어서 application 스코프에서 꺼내 사용 가능 -->
<!-- jsp 내장객체로 서블릿을 사용 가능하니 서블릿 파일 사용 가능한 것 인지 -->
</body>
</html>

 

 

수행결과

xml 파일을 참고해 name 과 encoding 값을 받아올 수 있다.