PageContext 요청 세션 애플리케이션 차이점 및 EL 표현식

10724 단어 자바웹

4가지 스코프의 차이점




  • pageContext [PageContext]


  • 범위는 현재 페이지로 제한됩니다.


    8개의 다른 기본 제공 개체도 사용할 수 있습니다.


  • 요청 [HttpServletRequest]


  • 서버가 해당 요청에 응답하는 한 범위는 하나의 요청으로 제한됩니다. 이 필드에 저장된 값이 사라졌습니다.


  • 세션 [HttpSession]


  • 범위는 하나의 세션(여러 요청 및 응답)으로 제한됩니다.


  • 애플리케이션 [ServletContext]


  • 전체 프로젝트에 액세스할 수 있지만 서버가 종료된 후에는 액세스할 수 없습니다.


    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...");
    

  • 배열 유형인 경우:

  • <%
    	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 표현을 사용하는데, 대부분은 특정 학생의 이름을 빼는 것과 같이 객체에서 속성값을 빼낼 때 사용한다.

    범위 관련 개체

  • 페이지스코프
  • 요청 범위
  • sessionScope
  • applicationScope

  • 헤더 정보 관련 객체

  • 헤더
  • 헤더 값

  • 매개변수 정보 관련 개체

  • param
  • paramValues ​​
  • 쿠키 전역 초기화 매개변수
  • initParam
  • 좋은 웹페이지 즐겨찾기