DD를 조작하여 서블릿에 정보를 전달하기 위한 용도의 인터페이스

 

1. ServletContext

하나의 context (application 범위) 내에서 다른 서블릿 간에 공유가 가능한 데이터

 

a. getServletContext()

ㄱ. jsp에서 사용할 시 : context를 받아오는 용도로 사용
              (ex. ServletContext context = getServletContext(); )
ㄴ. MVC(model2)에서 사용할 시 : Controller의 인터페이스(서블릿의 인터페이스 - GenericServlet)을 받아 사용하게 됨
                                         웹 어플리케이션의 절대 경로를 구하는 servletContext()를 구할 수 있음
                                         (ex. String realFolder = context.getRealPath("upload")


b. request.getSerlvetContext() vs request.getSession().getServletContext() 차이
     session이든 request든 간에 하나의 ServletContext 범위 안에서(하나의 웹 어플리케이션 영역)에 있음
     => 같은 ServletContext를 리턴하기 때문에 실질적인 둘의 차이는 없다


c. 서버의 물리적 경로 구하기
    - 현재 서비스가 돌아가고 있는 서버의 웹서비스 디렉토리 물리 경로를 구할시 사용 (파일 업로드시)

ㄱ. 업로드 디렉토리가 웹서비스 디렉토리 하위에 위치한 경우
    ( ex. request.getSession().getServletContext().getRealPath("/") )
        - 업로드 url : http://localhost\upload
        - 업로드 디렉토리 물리적 경로 : C:\Web\WebContents\upload\
        - 웹서비스 경로 : C:\Web\WebContents\
            - 가장 일반적 방법. 현재 서비스가 돌아가고 있는 서블릿의 경로를 가져옴.
            - 파일 업로드 위치가 실제 업로드 디렉토리 물리적 경로와 같이 서블릿 구동 경로 안에 있는 디렉토리에 포함되어 있을 경우 사용          
 ㄴ. 업로드 디렉토리가 별도 존재 => Tomcat 등의 Context로 추가한 경우
     ( ex. request.getSession().getServletContext().getContext("/upload").getPath("") )
        - 업로드 url : http://localhost\upload
        - 업로드 디렉토리 물리적 경로 : D:\upload\
        -  웹서비스 경로 : C:\Web\WebContents\
            - 업로드 디렉토리가 물리적으로 웹서비스 디렉토리에 포함되지 않고 별도로 존재함
            - 해당 디렉토리는 WAS 상에서 Context 등을 통해 별도로 추가된 경우 사용
 ㄷ. Properties 파일에 실제 저장될 물리적 경로 기입한 경우
        - 최근 가장 많이 사용하는 방법
        - WAS에 따라 처리하는 방식이 조금씩 다르기 때문에 편의성을 위해 사용

 

* ReadOnly : DD에서 config는 <servlet> 내에 있었지만, 개념적으로 Context가 더 상위이기 때문에 위치도 <servlet>보다

  위여야 함

  <coxntext-param>~</context-param> 에서 가져올 땐 getInitParam() 메소드를 사용함

  ReadWrite : getAttribute(), setAttribute() 메소드를 사용하여 특정 scope 조정하여 데이터 공유 가능


 

2. ServletConfig

해당 서블릿에서 사용함

하나의 서블릿에 관련된 초기화 파라미터

=> 주로 그 서블릿의 초기화 파라미터 값들을 설정하고 저장할 수 있음 (파라미터 초기화 : DD 사용)

 

'BackEnd > Java' 카테고리의 다른 글

Java :: Reflection 리플렉션  (0) 2016.12.18
Java :: Exception 예외처리  (0) 2016.12.15
Java :: Abstract vs Interface  (0) 2016.10.28
Java :: 간단한 JDBC 예제  (0) 2016.10.18
Java :: 스레드(Thread)  (0) 2016.10.12

+ Recent posts