内置对象:不需要预告定义,在脚本代码和表达式中直接使用。
9个内置对象: request、response、session、application、out、pageContext、config、page 和 exception。
(一)request对象
request对象封装了由客户端生成的 HTTP 请求的所有细节,主要包括 HTTP 头信息、系统信息、请求方式 和 请求参数 等。
1)访问 请求参数—— getParameter()
示例代码:
在页面中定义超链接。
<a href ="delete.jsp?id=1">删除</a>
在delete.jsp页面中,可以通过request 对象的getParameter() 方法获取传递的参数值。
<%
request.getParameter("id");
%>
2)在作用域中管理属性——getAttribut(String name) & setAttribute(String name,Object object)
在进行请求转发时,需要把一些数据传递到转发后的页面进行处理,可以使用 setAttribute() 方法将数据保存到 request 范围内的变量中。
注意:由于 getAttribute() 方法返回的值为 Object 类型,需要调用其 toString() 方法,将其转换为字符串类型。
3)获取 cookie
cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器。通过使用 cookie 可以标识用户身份,记录用户名和密码,跟踪重复用户等。浏览器将 cookie 以 key/value 的形式保存到客户机的某个指定目录中。
通过 cookie 的getCookies() 方法即可获取所有 cookie 对象的集合;通过cookie 对象的 getName() 方法可以获取到指定名称的 cookie ;通过 getValue() 方法即可获取 cookie 对象的值。将一个 cookie 对象发送到客户端,使用 response 对象的 addCookie() 方法。【注意:应保证客户机上允许使用 cookie 】
4)解决中文乱码
所有的 request 请求都是ISO-8859-1的。
ISO-8859-1 转换为 UTF-8 方法:String utf8 =new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8")
5)获取客户端信息
通过 request 对象可以获取客户端的相关信息。例如,HTTP 报头信息、客户信息提交方式、客户端主机 IP 地址、端口号等。
6)显示国际化信息
浏览器可以通过 accept-language 的HTTP 报送向 Web 服务器指明它所使用的本地语言。request 对象中的 getLocale() 和 getLocales() 方法允许 JSP 开发人员获取这信息。
(二)response 对象
1)重定向网页——sendRedirect(String path);
2)处理 HTTP 文件头
(1)禁用缓存
通过设置 HTTP 头的方法实现禁用缓存,代码如下:
<%
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
%>
(2)设置页面自动刷新
<%
response.setHeader("refresh","10"); //每隔10 秒刷新一次
%>
(3)定时跳转网页
<%
response.setHeader("refresh","5;URL=login.jsp");
%>
3)设置输出缓冲——response.setBufferSize(32); //设置缓冲区大小为32KB
(三)session对象
通过 session 可以在应用程序的 Web 页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session 对象就 会自动消失。这个时间取决于服务器,例如,Tomcat 服务器默认为 30分钟。不过这个时间可以通过编写程序进行修改。
1)创建及获取客户的会话——setAttribute(String name,Object obj) & getAttribute(String name)
2)从会话中移除指定的绑定对象——removeAttribute(String name)
3)销毁session——session.invalidate()
4)会话超时的管理
(1)getLastAccessedTime():返回客户端最后一次与会话相关联的请求时间。
(2)getMaxInactiveInterval():以秒为单位返回一个会话内两个请求最大时间间隔。
(3)setMaxInactiveInterval():以秒为单位设置session的有效时间。
(四)application对象
application对象用于保存所有应用程序中的公有数据。它在服务器启动时自动创建,在服务器停止时销毁。
1)访问应用程序初始化参数
应用程序初始化参数在 web.xml 文件(位于Web 应用所在目录下的 WEB-INF子目录中)中进行设置。在web.xml文件中通过<context-param>标记配置应用程序初始参数。
示例如下:
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://127.0.0.1:3306/db_database</param-value>
</context-param>
application对象提供了两种访问应用程序初始化参数的方法:
(1)applicaton.getInitParameter(String name); //参数name为参数名。如以上示例的 url
(2)application.getAttributeNames(); //返回所有已定义的应用程序初始化参数名的枚举。
(五)pageContext 对象
通过 pageContext 对象可以获取 JSP 页面的 request、response、session、application、exception 等对象。
(六)在Web浏览器输出信息的out——out.print("输出") & out.println("输出")
(七)读取 web.xml 配置信息的 config 对象
(八)应答请求的page对象
(九)获取异常信息的 exception 对象