NingG +

JSP内置对象,request、response、session、application的解释和使用

几个要点:

JSP内置对象

在JSP页面中不需要声明,可以直接使用,是JSP容器为每个JSP页面提供的Java对象。

request对象

request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。

request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。

常用方法:

response对象

response对象是javax.servlet.http.HttpServletResponse类的实例。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。

response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。

session对象

session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为。 session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。

常用方法:

application对象

application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext 类的实例。 这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。

application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。

整理和对比

JSP提供的内置对象如下:

内置对象 类型 作用域
pageContext javax.servlet.jsp.pageContext page
request javax.servlet.http.HttpServletRequest request
response javax.servlet.http.HttpServletResponse page
session javax.servlet.http.HttpSession session
application javax.servlet.ServletContext application
config javax.servlet.ServletConfig page
out java.servlet.jsp.JspWriter page
page java.lang.Object page
exception java.lang.Throwable page

属性的设置和取得

设置和获取属性:

四类范围

几类范围:

常见问题

Request中getContextPath、getServletPath、getRequestURI、getRealPath的区别

假定你的web application 名称为news,你在浏览器中输入请求路径:

http://localhost:8080/news/main/list.jsp

则执行下面向行代码后打印出如下结果:

常用:request.getContextPath()来定位到web应用的根目录;

思考:

几个参考来源:

Top