자바 웹 프로젝트 시작 순 서 를 자세히 설명 합 니 다.

1.웹.xml 설정 노드 안내
(1) context-param
형식 정의

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:spring/spring-mybatis.xml</param-value>
</context-param>
역할:
  • 이 요 소 는 응용 범위(전체 WEB 프로젝트)내의 상하 문 초기 화 파 라미 터 를 설명 하 는 데 사 용 됩 니 다.
  • param-name 컨 텍스트 의 매개 변수 이름 을 설정 합 니 다.유일한 이름 이 어야 합 니 다
  • param-value 가 설정 한 매개 변수 이름 의 값 입 니 다.여기 서 예 는 spring 프로필 의 위 치 를 지정 하 는 것 입 니 다
  • (2) listener
    형식 정의
    
    //listen-class      ,    ServletContextListener        contextInitialized(ServletContextEvent event)      contextDestoryed(ServletContextEvent event)
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    역할:이 요 소 는 모니터 류 를 등록 하 는 데 사 용 됩 니 다.사건 이 언제 발생 하고 무엇으로 응답 하 는 지 통 지 를 받 을 수 있 습 니 다.이벤트 감청 프로그램 은 세 션 이나 servlet 환경 을 만 들 고 수정 하 며 삭제 할 때 알림 을 받 습 니 다.context-param 과 함께 자주 사용 합 니 다.
    (3) filter
    형식 정의
    
    <filter>
      <filter-name>CharacterEncodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
        <param-name>encoding</param-name>
        <param-value>utf-8</param-value>
      </init-param>
    </filter>
    <filter-mapping>
      <filter-name>CharacterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    역할:WEB 용기 의 필 터 를 지정 하 는 데 사 용 됩 니 다.filter 는 servlet 에 도착 하기 전에 사용자 요청 을 미리 처리 할 수 있 고 servlet 를 떠 날 때 http 응답 을 처리 할 수 있 습 니 다.servlet 를 실행 하기 전에 먼저 filter 프로그램 을 실행 하고 예비 처리 작업 을 합 니 다.프로그램 에 따라 요청 과 응답 을 수정 해 야 합 니 다.servlet 이 호출 된 후에 servlet 의 실행 을 차단 합 니 다.
    (4)servlet
    -형식 정의
    
    //  Spring MVC,       Servlet,     :
    //1.     MVC        :/WEB-INF/${servletName}-servlet.xml
    //2.         MVC       ,     DispatcherServlet   MVC       。
    //           
    
    <!-- Springmvc       -->
      <servlet>
        <servlet-name>dispatchServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring/springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatchServlet</servlet-name>
        <url-pattern>*.shtml</url-pattern>
      </servlet-mapping>
    역할:
  • 고객 의 요청 성격 을 바탕 으로 하 는 동적 내용 을 포함 하 는 완전한 html 페이지 를 만 들 고 되 돌려 줍 니 다.
  • 기 존의 html 페이지 에 끼 워 넣 을 수 있 는 html 페이지(html 세 션)를 만 듭 니 다.
  • 클 라 이언 트 가 보 낸 숨겨 진 데 이 터 를 읽 기;
  • 클 라 이언 트 가 보 낸 디 스 플레이 데 이 터 를 읽 습 니 다.
  • 다른 서버 자원(데이터베이스 와 자바 응용 프로그램 포함)과 통신 합 니 다.
  • 2.웹.xml 로 딩 과정(절차):
  • 웹 프로젝트 를 시작 합 니 다.용기(예 를 들 어 Tomcat,Apache)는 설정 파일 웹.xml 의 두 노드,context-param 과 listener 를 읽 습 니 다.
  • 이 어 용 기 는 Servlet Context(일명 Servlet 상하 문)를 만 들 것 입 니 다.응용 범위 내 에서 전체 WEB 프로젝트 가 이 Servlet 상하 문 을 사용 할 수 있 습 니 다.
  • 용 기 는을 키 쌍 으로 바 꾸 어 ServletContext 에 전달 합 니 다.
  • 용기 가의 클래스 인 스 턴 스 를 만 듭 니 다.즉,감청 을 만 듭 니 다.(비고:listener 가 정의 하 는 클래스 는 사용자 정의 클래스 일 수 있 지만 ServletContextListener 를 계승 해 야 합 니 다.
  • 감청 중 context Initialized(ServletContextEvent args)초기 화 방법 이 있 습 니 다.이 방법 에서 얻 을 수 있 습 니 다:ServletContext=ServletContextEvent.getServletContext();context-param 의 값=ServletContext.getInitParameter("context-param 의 키");이 클래스 에 서 는 contextDestroyed(ServletContextEvent 이벤트)소각 방법 이 있어 야 합 니 다.응용 프로그램 을 닫 기 전에 자원 을 방출 합 니 다.예 를 들 어 데이터베이스 연결 이 닫 히 는 것 입 니 다.
  • 이 context-param 의 값 을 얻 으 면 조작 을 할 수 있 습 니 다.이때 당신 의 WEB 프로젝트 가 아직 완전히 시작 되 지 않 았 음 을 주의 하 세 요.이 동작 은 모든 Servlet 보다 빠 를 것 이다.다시 말 하면,이 때,의 키 값 에 대한 동작 은 WEB 프로젝트 가 완전히 시작 되 기 전에 실 행 됩 니 다.
  • 예 를 들 어 프로젝트 가 시작 되 기 전에 데이터 베 이 스 를 열 고 싶 을 수도 있 습 니 다.그러면'context-param'에서 데이터베이스 연결 방식 을 설정 하고 감청 류 에서 데이터베이스 연결 을 초기 화 할 수 있 습 니 다.
  • 보충 지식:ServletContext 는 전역 적 으로 정 보 를 저장 하 는 공간 으로 서버 가 시작 하면 존재 하고 서버 가 닫 혀 야 방출 된다.request,한 사용자 가 여러 개 있 을 수 있 습 니 다.session,사용자 하나;servlet Context 는 모든 사용자 가 하 나 를 공유 합 니 다.따라서 공간 을 절약 하고 효율 을 높이 기 위해 ServletContext 에서 필수 적 이 고 중요 하 며 모든 사용자 가 공유 해 야 할 라인 과 안전 한 정 보 를 넣 어야 한다.예 를 들 어 한 쇼핑 몰 에서 사용 자 는 상품 의 상세 한 정 보 를 방문 해 야 한다.만약 에 session 도 메 인 에 두 면 모든 사용자 가 데이터 베 이 스 를 한 번 방문 해 야 한다.그러면 효율 이 너무 낮다.한편,ServletContext 에 놓 으 면 서버 가 시작 하 자마자 데이터 베 이 스 를 방문 하여 상품 정 보 를 데이터베이스 에 넣 으 면 모든 사용자 가 문맥 을 통 해 상품 의 정 보 를 방문 할 수 있 습 니 다.
    3.웹.xml 노드 로드 순서:
  • 웹.xml 노드 의 로드 순 서 는 웹.xml 의 위치 선후 와 무관 합 니 다.즉,앞 에 쓰 여 있 기 때문에를 먼저 불 러 오지 않 습 니 다.
  • 위 에서 도 언급 한 바 와 같이은 ServletContext 에 키 쌍,즉 응용 프로그램의 상하 문 정 보 를 제공 하 는 데 사용 된다.한편,listener,servlet 등 노드 는 초기 화 과정 에서 이러한 문맥 정 보 를 사용 하기 때문에 마지막 으로 웹.xml 노드 의 로드 순 서 는 context-param->listener->filter->servlet 이 어야 합 니 다.
  • 특정한 설정 노드 에 있어 위치의 선후 가 요구 된다.servlet 의 예 를 들 어 servlet 와 관련 된 설정 노드 는 servlet-mapping 입 니 다.같은 설정 절 servlet-name 을 가 진 servlet 과 servlet-mapping 에 있어 servlet-mapping 은 servlet 후에 정의 해 야 합 니 다.그렇지 않 으 면 servlet-mapping 을 분석 할 때 servlet-name 은 아직 정의 되 지 않 았 습 니 다.웹 용기 가 시 작 될 때 모든 servlet 을 초기 화 할 때 servlet 설정 절 에 나타 난 순서대로 초기 화 합 니 다.
  • 최종 결론:웹.xml 의 로드 순 서 는[context-param->listener->filter->servlet->spring]이 고 같은 유형의 노드 간 의 실제 프로그램 이 호출 될 때의 순 서 는 대응 하 는 mapping 의 순서에 따라 호출 된다.
  • 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기