jsp 九个内置对象
1`.内置对象的描述
   这就个内置对象都是servlet API的类或者接口的实例。JSP把他们都初始化了。
 
2.九个内置对象分别是
l         application: javax.servlet.ServletContext的实例,代表JSP所属WEB应用本身,用于JSP叶面之间,或者servlet之间交换信息。
常用方法:getAttribute(String sttname),setAttribute(StringattName,String ttvalue),getInitParameter(String paramName);
l         config: javax.servlet.ServletConfig的实例,该实例代表JSP的配置信息。
常用方法有getInitPararneter(String paramNarne) getInitPararneternarnes() 等方法。事实上, JSP 页面通常无须配置,也就不存在配置信息。因此,该对象更多地在Servlet 中有效。
l         exception: java.lang.Throwable的实例,如果其他叶面出现错误,只有当前叶面是错误处理叶面,也就是 isErrorPage = “true”时,该对象才可以使用。
常用方法为:getMessage(),printStackTrace();
l         out:javax.servlet.jsp.jspWriter的实例,该实例代表JSP叶面的输出流,用于输出内容,声称HTML叶面。
l         page:代表该叶面本身,没太大用处,就是servlet中的this。类型是生成的servlet
l         pageContext:javax.servlet.PageContext的实例,该对象代表JSP叶面的上下文,使用该对象可以访问叶面中的共享数据。
常用方法为:getServletContext(),getServletConfig();
l         request:javax.servlet.http.HttpServletRequest的实例,该对象封装了一次请求,
客户端的请求参数都被封装在里面。这是一个常用的对象,获取客户端请求,必须使用这个对象。
常用方法:getParameter(String paramName),getParameterValues(String paramName),setAttribute(String attributeName,Object attributeValue),
getAttribute(String attribute),setCharacterEncoding(String env).
l         response:javax.servlet.http.HttpServletResponse的实例,代表服务器对客户端的相应。通常很少使用该对象直接响应,输出相应通常用out对象。此对象常用于,重定向。
常用方法:sendRedirect(String location).
l         session: javax.servlet.http.HttpSession的实例,代表一次会话。
常用方法:getAttribute(String attName),setAttribute(String attName, String attValue).
 
3. application 对象,getInitParameter(String paramName)。可以得到web服务配置文件.web.xml中的内容。在此文件中。
<context-param>
   <param-name>pname</param-name>
   <param-value>pvalue</param-value>
</context-param>
 
getAttribute(String sttname),setAttribute(StringattName,String ttvalue)。可以在jsp,servlet之间传值。
 
 
 
 
 
 
问题或总结:
1 .在实验application对象的过程中,用web.xml中的参数值来连接数据库,由于没有导入oracle驱动,所以出现错误,但是问题是,叶面没有出现提示信息。只是说500错误。在JSP叶面中已经指定错误叶面,但是并没有跳转到错误叶面,奇怪阿。但是在叶面中插入try{}catch{}后,错误信息就被打在叶面上,不知道什么原因。有待调查.
2. 另外在调试JSP过程中,其中的变量值不能显示出来。这个也有待调查。
3.对于驱动加载包,Java项目跟web项目的处理方式不一样。
l         如果是java项目,可以在项目文件夹上右键->属性,弹出eclipse属性对话框,选中左边一栏的java构建路径,再选择右边顶部的 (L)->添加库->用户库->点击用户库按钮->新建->写上库的名字(可随便填写)->点击添加JAR”按钮-> 找到你的oracle驱动文件,全部选中->打开->确定->确认新建的库已经勾选,点完成
l         如果是web项目,只要把oracle驱动文件拷贝到项目文件夹下WebRoot\WEB-INF\lib\中就行了; 或者拷贝到Tomcat文件夹下common\lib\中也可以。
 
 
4.config对象。此对象在JSP中应用很少。在servlet中经常应用。在jsp中可以用config.getServletName();可以获取servlet名字,因为在jsp中调用此句。所以其得到值是jsp.
 
5exception对象是Throwable对象的实例,代表jsp叶面产生的错误和异常,是jsp叶面一场框架的一部分。
jsp叶面中无须处理异常,即使该异常是checked异常。事实上jsp叶面包含的所有异常都有错误处理叶面,处理了。此对象只在错误处理叶面才生效。
 
6out对象。代表一个叶面的输出流,通常在叶面上,输出变量值,常量值。在使用输出表达式的地方,都可以用out对象来达到同样的效果。
 
while(rs.next())
//输出表格行
out.println("<tr> ");
//输出表格列
out.println(" <td>");
//输出结果集的第二列的值
out.println(getString(2));
//关闭表格列 out.println(" </td>");
// 开始表格列 out.println("<td>");
//输出结果集的第三列的值 out.println(rs.getString(3));
// 关闭表格列 out.println("<td>") ;
// 关闭表格行 out.println("</tr>"); }
 
 
 
 
 
7. pageContext对象,用于访问,page,request,session,application范围内的对象。
pageContext.setAttribute("request2","hello",pageContext.*_SCOPE);
pageContext.getAttributesScope(“name”);
若是page那么返回的是 1. request返回2.session返回的3.application返回的4.没有对应的变量返回 0;
 
8. request对象,是jsp中的重要对象,里面封装了一次用户的请求,并且所有请求参数都被封装在request对象中。因此request对象是获取客户端请求参数的方法。
l         表单封装
常用方法:request.getParameter();获取单个参数的值。
如果获取多个参数的值,比如说 多选匡的那种。那么用:
方法:request.getParameterValues();
 
总结:html代码中,很多都是 input type =”” name =””
如果radio,这种,只能选一个的。那么两个用一个名字就可以。
下来选匡,那么 select name = “” 里面子标签 option.
<option name vl>
…….
</option>
l         地址栏封装
不常用
l         封装请求属性。
request.setAttribute(),request.getAttribute();
 
总结:迭代器. Interator 的使用。包装类的使用。
 
9response
l         代表服务器对客户端的相应,程序无需response来相应response来相应客户端,因为有out。但是out是面向字符的。所以在图片等面向字节的功能需要时就需要response来做。
response.getoutputstream()
l         重定向,是response的另一个用处,与forward不同,重定向完全损失所有的请求参数。
response.sendRedirect(“”); 这个重定向,地址栏变成重新定向的地址栏。而
<jsp:forward page=””>地址栏不变,可以传递参数。
l         增加Cookie,常用方法 void addCookie(Cookie cookie).
具体步骤:
     创建Cookies实例;Cookie c = new Cookie("username" , name);
     设置Cookies的生命周期;c.setMaxAge(24 * 3600);
     向客户端写Cookiesresponse.addCookie(c);
注意:
使用Cookie 对象必须设直其生存期限,否则Cookie 将会随浏览器的关闭而
自动消失。
 
 
 
 
10       Session 对象也是一个常用的对象,代表一次用户的会话。从用户打开浏览器跟服务器端建立连接,到关闭浏览器,断开连接。
l         用于跟踪用户会话信息,比如判断用户是否登陆系统,多用购物车。
l         session里面的属性,可以在做个叶面之间实现共享。一旦关闭浏览器。session结束。所有属性值全部清空。
setAttribute(),getAttribute();