본문 바로가기

Java&JSP&Spring/JSP&Servlet

[JAVA/Servlet]특정Servlet생성시 초기에 필요한 파라미터 설정하기(ServletConfig)

 

[JAVA/Servlet]특정Servlet생성시 초기에 필요한 파라미터 설정하기(ServletConfig)

안녕하세요 미나라이입니다.

이번에는 특정Servlet이 생성시 초기에 필요한 파라미터를 설정하는 방법에 대해서 포스팅 하려고 합니다.

프로젝트 환경

OS : Windows 10

IDE : Eclipse 2020-06 (4.16.0)

Java : 8

Jdk Version : 1.8.0_161

WAS : Tomcat 8.5.73

 

서블릿을 생성할때 특정 정보를 처음부터 계속 사용하고 싶은 경우가 있습니다.

예를들면 특정 파일의 Path라든지 이런걸 처음부터 설정하고 싶을 경우 등이 있습니다.

이 때 초기화 파라미터를 설정해두면 해당 서블릿이 생성 될때부터 계속 사용 할 수 있게 됩니다.

대신 해당 기능은 다른 Servlet끼리와는 공유 할 수 없습니다.

 

방법은 두가지가 있습니다.

web.xml을 이용하는 방법과 서블릿 어노테이션을 이용하는 방법이 있습니다.

 

web.xml을 이용하는 방법

web.xml에 다음과 같이 설정합니다.

불필요한 부분은 제거했고 <web-app></web-app>테그 사이에 아무 곳에나 추가 하면 됩니다.

  <servlet>
  	<servlet-name>ServletInitXml</servlet-name>
  	<servlet-class>com.test.ServletConfigXml</servlet-class>
  	
  	<init-param>
  		<param-name>id</param-name>
  		<param-value>abcd</param-value>
  	</init-param>
  	<init-param>
  		<param-name>path</param-name>
  		<param-value>C:\\test</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>ServletInitXml</servlet-name>
  	<url-pattern>/InitXml</url-pattern>
  </servlet-mapping>

Servlet에서 Init값 호출하는 방법

호출되는 곳에 다음과 같이 추가 해 줍니다.

String id = getInitParameter("id")
String path = getInitParameter("path")

이제 직접 테스트를 해 봅시다.

서버를 실행하고 URL에 web.xml에 적어놓은 서블릿 맵핑 경로로 이동을 해 봅시다.

콘솔로그에 값이 제대로 찍혀있는지 확인 해 봅시다.

web.xml에 설정해놓은 값이 제대로 찍혀있네요

 

어노테이션을 이용하는 방법

서블릿 어노테이션에 다음과 같이 선언해줍니다.

urlPatterns는 URL경로를 맵핑해주는 부분이고

initParams는 초기화 시키고 싶은 값들을 정의해 주는 부분입니다.

@WebServlet(urlPatterns = {"/ServletConfigAnnotation"}, 
             initParams = {@WebInitParam(name="id", value="efgh"), 
                           @WebInitParam(name="path", value="C:\\test2")})

init값을 사용하는 방법은 web.xml과 동일합니다.

호출되는 곳에 추가 해 주면 됩니다.

String id = getInitParameter("id")
String path = getInitParameter("path")

이제 정의를 했으니 동작을 해 봅시다. 

서버를 실행하고 이번에는 어노테이션에 정의되어있는 /ServletConfigAnnotation경로로 맵핑 해 봅시다.

콘솔로그를 참고 해 봅시다.

제대로 찍혀있네요

샘플 프로젝트를 첨부합니다. 이클립스에서 프로젝트를 폴더째로 import해주면 됩니다.

Tomcat설정도 해주는거 잊으면 안됩니다!

ServletInitParam.zip
0.01MB

 

 

이상으로 간단하게 Servlet에서 초기화 파라미터를 작성하는 방법에 대해서 알아보았습니다.

 

 

728x90
반응형