/ WEB-INF에 넣어야하는 XHTML 파일과 않은 파일은 무엇입니까?
다음 질문 이후 :
- https://stackoverflow.com/questions/8589315/jsf2-dynamic-template
- 동적 UI : 포함
- @WindowScoped에서 개체를 검색해야합니까?
- @WindowScoped로 표현할 수 있습니다.
- WindowScoped에서 빈 생성시 ICE Faces 및 오류
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
기본적으로 공개적으로 액세스 할 수있는 폴더에 배치해야하는 사양에 따라 추가 . 모든 구성 요소를 사용하여 모든 구성 요소 에 액세스하여 /resources
URL (대신에 의해 /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>
'ProgramingTip' 카테고리의 다른 글
간단한 Java 이름 기반 잠금? (0) | 2020.12.15 |
---|---|
ModelState 유효성 검사 수동 호출 (0) | 2020.12.15 |
클래스에 __getitem__을 정의하면 반복 할 수있는 이유는 무엇입니까? (0) | 2020.12.14 |
MySQL-LIMIT가있는 UPDATE 쿼리 (0) | 2020.12.14 |
m2e 수명주기 매핑을 수 없습니다. (0) | 2020.12.14 |