PageContext 요청 세션 애플리케이션 차이점 및 EL 표현식
10724 단어 자바웹
4가지 스코프의 차이점
범위는 현재 페이지로 제한됩니다.
8개의 다른 기본 제공 개체도 사용할 수 있습니다.
서버가 해당 요청에 응답하는 한 범위는 하나의 요청으로 제한됩니다. 이 필드에 저장된 값이 사라졌습니다.
범위는 하나의 세션(여러 요청 및 응답)으로 제한됩니다.
전체 프로젝트에 액세스할 수 있지만 서버가 종료된 후에는 액세스할 수 없습니다.
EL 표현
JSP 코드를 단순화하는 것, 특히 jsp에 작성된 Java 코드를 단순화하는 것입니다.
${ }
<%
pageContext.setAttribute("name", "page");
request.setAttribute("name", "request");
session.setAttribute("name", "session");
application.setAttribute("name", "application");
%>
按普通手段取值<br>
<%= pageContext.getAttribute("name")%>
<%= request.getAttribute("name")%>
<%= session.getAttribute("name")%>
<%= application.getAttribute("name")%>
<br>使用EL表达式取出作用域中的值<br>
${ pageScope.name }
${ requestScope.name }
${ sessionScope.name }
${ applicationScope.name }
<%
String [] a = {"aa","bb","cc","dd"};
pageContext.setAttribute("array", a);
%>
使用EL表达式取出作用域中数组的值<br>
${array[0] } , ${array[1] },${array[2] },${array[3] }
%>
값을 먼저 얻으려면 먼저 값을 저장해야 합니다.
pageContext.setAttribute("name", "zhangsan");
session.setAttribute("name", "lisi...");
pageContext.setAttribute("name", "zhangsan");
session.setAttribute("name", "lisi...");
<%
String [] array = {"aa","bb","cc"}
session.setAttribute("array",array);
${ array[1] }
%>
2. 객체 유형을 직접 생성하는 경우 객체 이름을 직접 사용할 수 있습니다.<%
User user = new User("zhangsan",18);
session.setAttribute("u", user);
%>
${ u.name } , ${ u.age }
일반적으로 EL 표현을 사용하는데, 대부분은 특정 학생의 이름을 빼는 것과 같이 객체에서 속성값을 빼낼 때 사용한다.
범위 관련 개체
헤더 정보 관련 객체
매개변수 정보 관련 개체