PageContext request session application区别以及EL表达式

简介: PageContext request session application区别以及EL表达式

四个作用域的区别

  • pageContext 【PageContext】

作用域仅限于当前的页面。

还可以获取到其他八个内置对象。

  • request 【HttpServletRequest】

作用域仅限于一次请求, 只要服务器对该请求做出了响应。 这个域中存的值就没有了。

  • session 【HttpSession】

作用域限于一次会话(多次请求与响应) 当中。

  • application 【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...");
  1. 如果是数组类型的:
<%
  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表达式,用的比较多的,都是从一个对象中取出它的属性值,比如取出某一个学生的姓名。

作用域相关对象

  • pageScope
  • requestScope
  • sessionScope
  • applicationScope

头信息相关对象

  • header
  • headerValues

参数信息相关对象

  • param
  • paramValues
  • cookie
    全局初始化参数
  • initParam


相关文章
|
8月前
|
JSON 前端开发 Java
前端请求SpringBoot接口出现Required request body is missing
前端请求SpringBoot接口出现Required request body is missing
384 2
|
5月前
|
缓存 Java 应用服务中间件
JSP的内置对象 request和response
这篇文章详细介绍了JSP的内置对象,包括request、response、out、session和application对象的使用方法和特性,以及如何通过这些对象处理HTTP请求和响应、管理会话和输出数据。
|
Java Spring
springMVC中获取request 对象
springMVC中获取request 对象
|
Java 应用服务中间件
Servlet三大作用域:Request、Session、Application
Servlet三大作用域:Request、Session、Application
242 0
|
Java
${pageContext.request.contextPath}无法解析乱码使用不了
${pageContext.request.contextPath}无法解析乱码使用不了
168 0
${pageContext.request.contextPath}无法解析乱码使用不了
|
Java Maven
JSP 使用 ${pageContext.request.contextPath} 无效
通过 ${pageContext.request.contextPath}可在JSP 中取得当前的项目绝对路径,比如当前项目是 http://localhost:8080/demo, 则 ${pageContext.request.contextPath} 代表的就是 /demo,其中 / 代表 http://localhost:8080,所以一般使用${pageContext.request.contextPath} 定位资源。
|
Java 容器
JSP中的getAttribute与getParame的区别
JSP中的getAttribute与getParame的区别
128 0
|
数据库
记一次Servlet中getAttribute的错误.
package com.ykmimi.order.servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.
1245 0
|
应用服务中间件 容器 数据安全/隐私保护
Servlet中request请求Get和Post方法以及乱码解决
前言: 传递的请求参数如何获取 GET方式: 参数放在URI后面 POST方式: 参数放在实体内容中 后台获取前台数据方法: 核心的API: request.getParameter("参数名"); 根据参数名获取参数值(注意,只能获取一个值的参数) request.
3171 0
在SpringMVC中获取request对象的几种方式
在SpringMVC中获取request对象的几种方式   1.最简单的方式(注解法) 1 2 @Autowired private  HttpServletRequest request; 2.
1437 0