#008. ServletConfig 와 ServletContext 알아보기...
1. ServletConfig 와 ServletContext 비교 해보기...
ServletConfig | 하나의 Servlet 에서 사용 한다. (config 객체 라고도 함) - getxxx() 메서드만 지원이 되므로, Read-Only 가 되겠다. |
ServletContext | 하나의 Context 에서 여러 파일간 자원을 공유해서 사용 한다. (application 객체 라고도 함) 즉, 공유자원 의 의미를 갖는다. - getxxx(), setxxx() 메서드가 지원이 되므로, Read-Write 가 가능하다. |
web.xml | #003 강좌에서 1-1)번에 D.D 에 대한 설명이 있었다. Deployment Descriptor File (배치기술자. D.D File 이라고도 함. ) 위 ServletConfig 와 ServletContext 의 키, 값 을 web.xml 에 배치 한다. |
2. Java-Api 문서를 통해 알아보자. ( http://download.oracle.com/javaee/6/api/ )
1) Interface ServletConfig - getxxx() 메서드만 지원
2) Interface ServletContext - getxxx(), setxxx() 메서드 모두 지원
3. 실습을 통해서 알아보자. (환경파일 web.xml , 소스코드 HelloServlet.java , 웹 브라우저 확인)
1) web.xml 환경파일에 키, 값 으로 배치를 해보자.
코드 | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<!-- ServerContext --> <context-param> <param-name>company</param-name> <param-value>(주)동혁엔터테이먼트</param-value> </context-param>
<servlet> <servlet-name>kyumboy</servlet-name> <servlet-class>hello.HelloServlet</servlet-class> <!-- ServletConfig --> <init-param> <param-name>tel</param-name> <param-value>02-1234-5678</param-value> </init-param> </servlet>
<servlet-mapping> <servlet-name>kyumboy</servlet-name> <url-pattern>/hello.dh</url-pattern> </servlet-mapping> </web-app> |
설명 | 1. ServletContext 는 문장4~9 의 위치에 배치하며, <context-param> 태그안에 company 키에 (주)동혁엔터테이먼트 값을 지정했다. 또 다른 키, 값을 지정하려면, 문장5~8 을 바로 아래에 똑같이 추가하면 되겠다. 2. ServletConfig 의 위치는 Kyumboy hello.HelloServlet 안에 포함돼야 하며, <init-param> 태그안에 키, 값을 지정한다. 또 다른 키, 값을 지정하려면, 문장14~17 을 바로 아래에 똑같이 추가 하면 되겠다. |
2) HelloServlet Class 에 키에 대한 값을 가져오고, 출력하는 기능을 구현하자.
코드 | ....... 상단 부 생략 ...... String msg = req.getParameter("msg"); String pwd = req.getParameter("pwd");
// ServletContext 객체 생성 / 값 추출 ServletContext context = this.getServletContext(); String company = context.getInitParameter("company");
// ServletConfig 객체 생성 / 값 추출 ServletConfig config = this.getServletConfig(); String tel = config.getInitParameter("tel");
// 클라이언트의 웹브라우저에 전송해줄 컨텐츠의 타입을 지정한다. resp.setContentType("text/html;charset=euc-kr"); ....... 중간 부 생략 ...... out.println("<p><b> param pwd: </b>" + pwd + "</P>"); out.println("<p><b> Context company: </b>" + company + "</P>"); out.println("<p><b> Config tel: </b>" + tel + "</P>"); out.println("</body>"); out.println("</html>"); ....... 하단 부 생략 ...... |
설명 | 코드가 너무 길어 필요한 부분만 위에다가 서술 했다. 문장61: this.getServeltContext() 메서드를 통해 Interface ServletContext 의 context 객체를 생성했다. 문장62: getInitParameter() 메서드를 통해 web.xml에 서술한 키의 값을 문자열로 가져온다. 문장65: this.getServeltConfig() 메서드를 통해 Interface ServletConfig 의 config 객체를 생성했다. 문장66: getInitParameter() 메서드를 통해 web.xml에 서술한 키의 값을 문자열로 가져온다. 문장81~82: 값을 가져왔는지 출력을 통해 확인 한다. |
3) 웹 브라우저로 확인 해보자.
http://localhost:8080/web/hello.html 값 입력 후 전송..
설명 | Web.xml 에 서술한 값이 출력되는 것을 확인 할 수 있다. |
지금까지 was / java servlet 에 대해서 알아 봤습니다.
모두 고생하셨습니다. (^^") 짝짝짝....^^
'Developer > Java-was' 카테고리의 다른 글
#007. doPost() 메서드에 대해서 알아보기... (64) | 2011.04.27 |
---|---|
#006. doGet() 메서드에 대해서 알아보기... (0) | 2011.04.27 |
#005. HttpServlet Class 실습을 통해 알아보기... (0) | 2011.04.26 |
#004. Servlet (서블릿)에 대해서 알아보기... (2) | 2011.04.26 |
#003. Java EE Perspective 와 간단한 HTML 문서 만들어보기... (0) | 2011.04.25 |