ProgramingTip

/ WEB-INF에 넣어야하는 XHTML 파일과 않은 파일은 무엇입니까?

bestdevel 2020. 12. 15. 19:37
반응형

/ WEB-INF에 넣어야하는 XHTML 파일과 않은 파일은 무엇입니까?


다음 질문 이후 :

JSF2 프레임 워크에 대한 "어리석은"문제를 해결하기 위해 모든 것을 작성했습니다. /WEB-INF하위 폴더에 수준 페이지에 직접 수준입니다 . 그 후 Google 및 Stackoverflow에 대한 조사를 수행했습니다. JSF2 웹 프로젝트를 어떻게 구성합니까?

특히 XHTML 페이지를 정확히 어디에 두어야할까요?


/WEB-INF폴더의 파일 은 실제로 최종 사용자가 공개적으로 액세스 할 수 없습니다. 그래서 당신은 번식 할 수 없습니다 http://localhost:8080/contextname/WEB-INF/some.xhtml. 이는 최종 사용자가 다른 사용자들 사이에서 볼 수 있기 때문에 잠재적 인 보안 구멍이 될 것 /WEB-INF/web.xml입니다.

그러나 /WEB-INF폴더를 사용하여 마스터 템플릿 파일을 넣고 파일 및 태그 파일을 포함 할 수 있습니다 . 예를 들어 page.xhtml외부에 배치 /WEB-INF되고 http://localhost:8080/contextname/page.xhtml다음에서 액세스 할 수 있는 다음 템플릿 클라이언트 가 있습니다 .

<ui:composition template="/WEB-INF/templates/template.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
>
    <ui:define name="content">
        ...
        <ui:include src="/WEB-INF/includes/include.xhtml" />
        ...
    </ui:define>
</ui:composition>

마스터 템플릿과 파일 포함의 장점은 /WEB-INF최종 사용자가 브라우저 주소 표시 줄에 URL을 입력 / 추측하여 직접 열 수 있습니다. 직접 액세스하려는 일반 페이지 및 템플릿 클라이언트는 /WEB-INF폴더에 배치하면 하나의 .

그리고 복합 구성 요소 파일도 공개적으로 액세스 할 수는 없지만 /resources기본적으로 공개적으로 액세스 할 수있는 폴더에 배치해야하는 사양에 따라 추가 . 모든 구성 요소를 사용하여 모든 구성 요소액세스하여 /resourcesURL (대신에 의해 /javax.faces.resource)에 의해 액세스하지 않도록 방지하는 경우 다음 리소스 대한 제약 조건을 추가 web.xml하여 /resources폴더에 대한 공용 액세스를 차단할 수 있습니다 .

<security-constraint>
    <display-name>Restrict direct access to the /resources folder.</display-name>
    <web-resource-collection>
        <web-resource-name>The /resources folder.</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint />
</security-constraint> 

참조 URL : https://stackoverflow.com/questions/9031811/which-xhtml-files-do-i-need-to-put-in-web-inf-and-which-not

반응형