[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설정도 해주는거 잊으면 안됩니다!
이상으로 간단하게 Servlet에서 초기화 파라미터를 작성하는 방법에 대해서 알아보았습니다.
'Java&JSP&Spring > JSP&Servlet' 카테고리의 다른 글
[JAVA/Servlet]웹 어플리케이션의 생명주기를 감시하는 리스너 활용방법(ServletContextListener) (0) | 2022.01.23 |
---|---|
[JAVA/Servlet]모든 Servlet에서 공용 파라미터를 사용하는 방법(ServletContext) (0) | 2022.01.23 |
[JAVA/JSP/Servlet]Servlet에서 파라미터 받을 때 한글 깨짐 방지 하는법 (0) | 2022.01.23 |
[JAVA/JSP/Servlet]Servlet에서 Form데이터 받는 방법 (0) | 2022.01.22 |
[JAVA/Servlet]Servlet의 생명주기(Line Cycle) (0) | 2022.01.22 |