jsp提供了9个内置对象,这些对象主要特点有:
- 由JSP规范提供,不用实例化;
- 通过Web容器实现和管理;
- 所有JSP页面均可使用;
- 要写在脚本元素的表达式或代码段中:<%=使用内置对象%>或<% 使用内置对象%
1、掌握与输入输出有关的对象(request、response、out)
①request
request对象是从客户端向服务器端发出请求,请求由客户端通过HTML表单或在网页地址后提供参数的方法提交的数据。
request对象中有许多方法,比较常用应用的方法有:
<%
request.setCharacterEncoding("utf-8);//设置字符集,用于解决乱码问题;
String username=request.getParameter("userName");//获取属性name为userName表单组件数据;
String [] favorite=request.getParameterValues("favor")//获取多个属性name为favor的表单组件;
%>
②response
response对象的作用是处理HTTP连接信息;
比较常用应用的方法有:
<%
response.setHeader("refresh","1");//每秒钟自动刷新一次;
response.sendRedirect("login.jsp");//想服务器发送一个请求重定向。
response.addCookie(c1);//通过response对象将Cookie设置到客户端;
%>
③out
out是用于向客户端输出的PrinterWriter对象。
<%
out.println("输出语句1");//输出,并自动换行;
out.print("输出语句2");//输出,不会自动换行;
out.clear();//清除缓冲区内容,不会输出到客户端;
out.clearBuffer();//清除缓冲区内容,并且输出到客户端;
out.close();//关闭输出流,并清除所有内容;
out.flush();//输出缓冲区里面的内容;
%>
2、作用域通信对象(session、application、pageContext)
①session用来保存每个用户的私有信息;
从客户端打开浏览器并连接服务器,到客户端关闭浏览器断开这个服务器,为一个会话(session)。
这个session在同一次的会话中,页面间相互的数据传输。
获取session的方法有三种1、使用session关键字,引用session对象;
2、使用request对象中的getSession()方法;
3、使用PageContext对象中的getSession()方法;
比较常用应用的方法有:
<%
session.getCreationTime();//获取创建时间;
session.getId();//获取session的id号;
session.getLastAccessedTime();//获取最后一次请求的时间;
session.setMaxInactiveInterval(30);无动作超过三十秒session将被取消。默认是30分钟;
session.putValue("name","Owen");//保存属性名为name,属性值为Owen的数据;
session.putValue("number","123");
session.getValueNames().length;//数据将以数组的形式存储,获取该数组的长度
session.getValueNames()[i];//获取下标为i的数组属性名;
session.getValue(session.getValueName()[i]);//获取下标为i的数组属性值;
session.setAttribute("username","Owen");//存属性username,属性值为Owen的数据;
session.getAttribute("username");//获取属性名为username的属性值
%>
session的有效时间设置
在session创建时设置;
<%
session.setMaxInactiveInterval(3600);//时间单位为秒;
%>
在web.xml文件中配置;
<session-config>
<session-timeout> 30 </session-timeout> <!--单位为秒-->
</session-config>
②application
session来保存每个用户的个人私有信息;application对象用来共享整个应用的参数;application对象具有全局作用范围,整个应用共享,它的生命周期为应用程序的启动到服务器的关闭;
比较常用应用的方法有:
<%
application.setAttribute("count","1");//创建属性名为count,值为1的数据;
//jsp页面显示配置文件中给出的访问数据库所使用的驱动、url、用户名和密码。
//从配置参数中获取驱动
String driver = application.getInitParameter("dirver");
//从配置参数中获取数据库url
String url = application.getInitParameter("url");
//从配置参数中获取用户名
String username= application.getInitParameter("username");
//从配置参数中获取密码
String password= application.getInitParameter("password");
%>
web.xml配置文件
<--配置第一个参数:driver-->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<--配置第二个参数:url-->
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/j2ee</param-value>
</context-param>
....
③pageContext
pageContext是一个比较特殊的对象,相当于页面中所有的对象功能都集成者,使它可以访问到本页面中所有的内置对象,例如request,response对象等。
3、servlet对象(page、config)
①page
page对象是java.long.Object类的实例。它指向当前JSP页面本身,有点像类中的this指针,用于设置JSP页面的属性,这些属性将用于和JSP容器通信,控制所生成的servlet结构。
②config
config对象代表当前jsp配置信息,但jsp页面通常无需配置,不存在配置信息。但servlet需要在web.xml中配置,可以指定配置参数;
<%
config.getservletContext().getServerInfo();//返回服务器信息;
config.getServletName();//返回服务器名称;
%>
4、异常处理对象(exception)
①exception
exception主要针对异常做出相应处理的对象,当异常发生时,则使用errorPage命令指定那个页面处理异常。
要使用该内置对象,必须在page命令中设定:
<%@ page isErrorPage="true" %>
否则编译会出现错误。
比较常用应用的方法有:
<%
exception.getMessage();//返回错误信息;
exception.toString();//以字符串的形式返回对异常的描述;
%>