-
서블릿 초기화 파라미터기타/Servlet 2020. 12. 8. 15:36
정의
특정 서블릿이 생성될 때 초기에 필요한 데이터들이 있다.
이러한 데이터들을 초기화 파라미터라고 한다.
web.xml을 이용한 방법
webContent > WEB-INF > web.xml 에서 초기화 파라미터 기술이 가능하다.
<!-- 특정 서블릿에 사용할 초기화 파라미터 지정 --> <servlet> <servlet-name>myServlet</servlet-name> <servlet-class>com.vison.servletex.HelloServlet3</servlet-class> <init-param> <param-name>dbName</param-name> <param-value>mydb</param-value> </init-param> <init-param> <param-name>dbPasswd</param-name> <param-value>myPasswd</param-value> </init-param> </servlet> <!-- JAVA 파일 만들때 맵핑을 별도 설정 안한 경우만 사용 중복 입력하면 에러가 나거나 초기값이 NULL로 뜬다 --> <servlet-mapping> <servlet-name>myServlet</servlet-name> <url-pattern>/HS3</url-pattern> </servlet-mapping> <!-- 모든 서블릿에 사용가능한 초기화 파라미터 지정 --> <context-param> <param-name>ourschool</param-name> <param-value>학원</param-value> </context-param> <context-param> <param-name>lecture</param-name> <param-value>강좌명</param-value> </context-param>
<servlet> 태그안에 servlet을 구분할 수 있도록 <servlet-name>을 사용하고
어떤 servlet에 초기화 데이터를 제공할 것인지 <servlet-class>태그 안에 패키지 명을 포함한 경로를 적어준다.
초기화를 작성하는 태그는 2가지가 있다
<init-param> - 특정 서블릿에만 적용시킨다
<context-param> - 여러 서블릿에서 사용가능하다.
위 태그 안에는 각각 아래의 태그로 데이터를 넣을 수 있다.
<param-name> = 데이터를 구분하는 이름
<param-value> = 초기화 데이터 값
주의할 점은 맵핑이 꼭 필요하다는 것이다.
데이터를 모두 초기화 했으면 이제 사용해보자
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String dbName = getInitParameter("dbName"); String dbPasswd = getInitParameter("dbPasswd"); String ourschool = getServletContext().getInitParameter("ourschool"); String lecture = getServletContext().getInitParameter("lecture"); request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("아이디:" + dbName + "<br/>"); out.println("비번:" + dbPasswd + "<br/>"); out.println("소속:" + ourschool + "<br/>"); out.println("어떤강좌:" + lecture + "<br/>"); out.close(); }
호출 방법은 <param-name> 태그안의 이름을 getInitParameter( ) 안에 넣고 매개변수를 만들어주면 된다.
태그별로 호출 방식의 차이가 있으니 유의하자
<init-param> = getInitParameter( )
<context-praram> = getServletContext( ).getInitParameter( )
@(어노테이션)을 이용한 방법
//@WebServlet("/HS2") @WebServlet( urlPatterns="/HS2", initParams= {@WebInitParam(name="address", value="대전"), @WebInitParam(name="phone", value="010-4402-7984") })
@(어노테이션)을 이용하기 위해선 클래스 상단에 @WebServlet( ) 을 선언한다.
맵핑 - urlPatterns={"URL"},
initParams= { @WebInitParam ( name="", value="" ) }
먼저 맵핑을 해주고 ','로 구분 후에 web.xml에서 기술했던 방식과 동일하게 기입하면된다.
만들어진 초기화 데이터의 사용법은 web.xml과 같다.
'기타 > Servlet' 카테고리의 다른 글
지시자 (0) 2020.12.08 JSP 스크립트 요소 - 스크립트릿, 표현식, 선언 (0) 2020.12.08 태그의 개념과 내장객체 (0) 2020.12.08 웹어플리케이션 감시 ServletContextListener (0) 2020.12.08 서블릿(servlet) 간단한 예제 (0) 2020.12.07