JSP中最重要的5个内置对象和其中对应的4个范围总结

简介: JSP中最重要的5个内置对象和其中对应的4个范围总结

JSP脚本中包含9个内置对象,这9个内置对象是Servlet API接口的实例,JSP规范已经对它们进行了初始化(已经是对象),可以直接使用。着重讲最重要的5个


内置对象:


1、application:javax.servlet.ServletContext的实例。该实例代表JSP所属的Web应用本身。可用于JSP页面、Servlet之间交换信息。

常用的方法有getAttribute(String attName)、setAttribute(String attNamel,String attValue)、getInitParameter(String paramName)。


2、page:代表该页面本身,其类型就是生成的servlet类。也就是Servlet中的this。能用page的地方就可以用this。


3、request:javax.servlet.http.HttpServletRequest的实例,该对象封装了一次请求,客户端的请求参数都被封装到该对象里。这是一个常用的对象,获取客户端请求参数必须使用

该对象。常用的方法有getParameter(String paramName)、getParameterValues(String paramName)、setAttribute(String attrName,Object attrValue)、getAttribute(String attrName)

和setCharacterEncoding(String env)等。


4、response:javax.servlet.http.HttpServletResponse的实例,代表服务器端对客户端的响应。而response对象常用于重定向,常用的方法有:getOutputStream()、sendRedirect(java.lang.String location)等。


5、session:javax.servlet.http:HttpSession的实例,该对象代表一次回话。当客户端与站点建立连接时,回话开始;当客户端关闭浏览器时,回话结束。常用的方法有:getAttribute(String attrName)、

setAttribute(String attrName,Object attrValue)。

由于JSP内置对象都是在_jspService()方法中完成初始化的,因此只能在JSP脚本(<%......%>)、JSP输出表达式(<%=....%>)中使用这些内置对象。

JSP中的application,session,request和pageContext4个内置对象分别用于操作application、session、request和page范围中的数据。


4个Map结构的范围不同:

application:对于整个Web应用有效,一旦JSP、Servlet将数据放入application中,该数据将可以被该应用下的其他所有的JSP、Servlet使用。

session:仅对一次回话有效,一旦JSP、Servlet将数据放入application中,该数据将可以被该应用下的其他所有的JSP、Servlet使用。

request:仅对本次请求有效,一旦JSP、Servlet将数据放入application中,该数据将可以被该应用下的其他所有的JSP、Servlet使用。

page:仅对当前页面有效,一旦JSP、Servlet将数据放入application中,该数据将可以被该应用下的其他所有的JSP、Servlet使用。

 

几乎所有的Web开发语言都支持Session功能,Servlet也不例外。 Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的。


作用域分为四种,分别为:

 

page 在当前页面有效(仅用于JSP中)
request 在当前请求中有效
session 在当前会话中有效
application 在所有应用程序中有效


每个作用域除了实现接口不同、意义不同之外,它们的使用方法和作用都是相同的, 都是通过 getAttribute 和 setAttribute 方法进行信息传递。


 

作用域 意义 实现接口
request HTTP请求内 HttpServletRequest
session HTTP会话内 HttpSession
application 服务器生命周期内 ServletContext


equest的生命周期是request请求域,一个请求结束,则request结束 session的生命周期是session会话域,打开一个浏览器请求一个网站的页面后,Session开始,当session超过时间限制(一般是20分种)后,session注销而失效 或是人为使用session.invalidate();使用session失效; 或是关闭浏览器后,session还存在,但是这里已经无法获取session了,过一会它还是失效。

 

Session的生命周期


1.1 session什么时候创建:


  Session一般存储在服务器的内存中,Sessinon在用户访问第一次访问服务器时创建(注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session)。当然,强制生成Session可使用request.getSession(true)方法


1.2 session什么时候销毁:


  1.session的持有者(即客户端浏览器)在最大无活动等待时间(MaxInactiveInterval)内无任何响应或请求 ;


    设置方法有许多(这里随便写两种):

          1.session.setMaxInactiveInterval(2 * 3600);  // Session保存两小时

          2.web.xml里有:

           <session-config>

               <session-timeout>10</session-timeout>

           </session-config>

  2.调用Session的invalidate方法强制销毁。


  3.jsp服务器重起或发生中断(这个和tomcat服务器的配置有关(默认不销毁,可以设置全部销毁),重启默认前会把session写入文件里保存,重启后会读取session文件,所以session默认时间没过还是存在的)  


  注意:关闭浏览器并不会销毁session,默认下次开启浏览器会新建session,但是旧的session会在最大无活动等待时间后自动执行销毁。

相关文章
|
4月前
|
存储 缓存 Java
JSP九大内置对象及基本使用
JSP九大内置对象及基本使用
95 0
|
7月前
|
Java
17JavaWeb基础 - JSP的九大内置对象/四大作用域
17JavaWeb基础 - JSP的九大内置对象/四大作用域
37 0
|
8月前
|
Java
jsp内置对象和路径
jsp内置对象和路径
53 0
|
11天前
|
XML 前端开发 Oracle
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
13 2
|
10月前
|
Java
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(二)
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(二)
85 0
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(二)
|
10月前
|
Java 存储
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(一)
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(一)
38 0
欢迎来到Jsp编程课时四——内置对象 中四大作用域。(一)
|
10月前
|
Java
2022年欢迎来到Jsp编程第二课:JSP核心九大内置对象
2022年欢迎来到Jsp编程第二课:JSP核心九大内置对象
71 0
|
7月前
|
存储 Java
每日一道面试题之jsp 有哪些内置对象?作用分别是什么?
每日一道面试题之jsp 有哪些内置对象?作用分别是什么?
|
8月前
|
缓存 安全 Java
JSP内置对象总结
JSP内置对象总结
80 0
|
9月前
|
Java
jsp相关概念以及九大内置对象
jsp相关概念以及九大内置对象
59 0