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();