2014-05-23 2 views
0

우리는 JSTL을 사용하여 JSP뿐만 아니라 Java에서 코드 조각을 처리 할 수 ​​있습니다. 예를 들어 간단한 비교와 비교를 기준으로 적절하게 값을 설정할 수 있습니다.Java와 JSP의 JSTL 성능 비교

모범 사례와 성능을 고려할 때 어떤 대안을 선호합니까? 둘 다 성능 관점에서 동일합니까?

P. Java 스크립틀릿에 대해 이야기하지 않습니다.

답변

3

JSTL과 JSP 서버 태그의 목적은 JSP에서 Java 코드를 가져 오는 것이 었습니다.

JSP는 응용 프로그램의 "보기"부분에 사용되는 프레젠테이션 기술입니다. 프레젠테이션 로직 만 처리해야합니다. 그러나 스크립틀릿에 Java 코드를 추가하는 것이 쉽기 때문에 많은 개발자들이 JSP 내부에 비즈니스 로직을 추가하기 시작했습니다. 따라서 당신은 불량한 separation of concerns을 가지고 있기 때문에 잘 테스트 할 수없는 애플리케이션으로 끝납니다 (@Steve C가 그의 대답에 댓글을 달았습니다). 이것은 차례 차례로 큰 maintainability 혼란을 가져온다.

그래서 서버 태그는 the use of scriptlets (a practice frowned upon)을 대체하며 아주 잘 정의 된 동작을 가진 자바 클래스에서 서버 코드가 속한 비즈니스 코드를 가져야합니다. 서버 태그를 사용하여 지금 다시 질문 얻기 위해, 인트로 위해이었다

...

는 전체 lifecycle가 있기 때문에 그냥 일반 자바 코드에서 같은 일을하고있는 것보다 실행하기 위해 실제로 더 많은 코드를 필요 컨테이너는 출력을 얻기 위해 태그를 통과시킵니다. 느리지 만 대부분의 경우에는 관련성이 없습니다. 성능을 생각하면 마음 the rules of optimization을 유지해야한다 : 최적화의

첫 번째 규칙 -하지 마십시오을.
두 번째 최적화 규칙 - 아직하지 마세요.
프로필 모범 사례로

를 최적화하기 전에, 당신은 자바 클래스와 JSP 단지 당신이 할 수 있기 때문에 사이에 분할하여 코드의 가독성과 유지 보수성을 희생해서는 안된다. 앞서 말했듯이 JSP는 비즈니스 논리가 아닌 표현을위한 것입니다. 관련 코드는 응용 프로그램의 여러 레이어에 흩어지지 않아야합니다.

0

가능한 한 JSP를 논리가없는 상태로 유지하는 것이 좋습니다.

java에서 구현 된 로직에 대한 단위 테스트를 작성하는 것이 훨씬 쉽습니다.

+0

동의하지만 사소한 c :를 사용하면 Java 코드의 부담을 덜어 줄 수 있습니다. 더 복잡한 경우가 있습니다. – pk87

+0

자동화 된 테스트를 유지하기가 쉬운 곳에서 부담을 덜는 것이 좋습니다. 물론 페이지의 덩어리를 렌더링하는 결정은 JSP 자체에서 이루어져야합니다. –

0

JSF JSTL과 JSP JSTL은 동일하므로 동일한 기능을 수행합니다. 고려해야 할 유일한 요소는 JSF JSTL 표현식을 최대 6 회까지 평가할 수 있다는 것입니다.