역할:이 요 소 는 모니터 류 를 등록 하 는 데 사 용 됩 니 다.사건 이 언제 발생 하고 무엇으로 응답 하 는 지 통 지 를 받 을 수 있 습 니 다.이벤트 감청 프로그램 은 세 션 이나 servlet 환경 을 만 들 고 수정 하 며 삭제 할 때 알림 을 받 습 니 다.context-param 과 함께 자주 사용 합 니 다. (3) filter 형식 정의
역할:WEB 용기 의 필 터 를 지정 하 는 데 사 용 됩 니 다.filter 는 servlet 에 도착 하기 전에 사용자 요청 을 미리 처리 할 수 있 고 servlet 를 떠 날 때 http 응답 을 처리 할 수 있 습 니 다.servlet 를 실행 하기 전에 먼저 filter 프로그램 을 실행 하고 예비 처리 작업 을 합 니 다.프로그램 에 따라 요청 과 응답 을 수정 해 야 합 니 다.servlet 이 호출 된 후에 servlet 의 실행 을 차단 합 니 다. (4)servlet -형식 정의
고객 의 요청 성격 을 바탕 으로 하 는 동적 내용 을 포함 하 는 완전한 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 의 순서에 따라 호출 된다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: