博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsp 隐含对象
阅读量:5274 次
发布时间:2019-06-14

本文共 2552 字,大约阅读时间需要 8 分钟。

1.引言

为了方便程序员对常用对象的访问,在JSP中规范了就中隐含对象,这些对象不用声明可以直接拿来使用,在从JSP转换为servlet时,他们会转换为对应的servlet类型。

out:表示输出,相当于servlet中的PrintWriter,对应的类型是javax.servlet.jsp.JspWriter

request:表示请求信息,对用的类型是javax.servlet.http.HttpServletRequest

response:表示响应信息,对应的类型是javax.servlet.http.HttpServletResponse

session:和servlet中的HttpSession一样。对应的类型是javax.servlet.http.HttpSession

application:表示整个应用的上下文,和getServletConfig().getServletContext()等效。对应类型为javax..servlet.jsp.PageContext

exception:页面异常,可以通过它获得异常的信息,对应的类型是java.lang.Throwable;

page:表示此JSP页面,和java类中的this含义一样

pageContext:表示此JSP的上下文,对应的类型是javax.servlet.jsp.PageContext

config:表示此JSP的servletconfig,对应的类型是javax.servlet.ServletConfig

其中pageContext, request, session, application为四个作用域对象。

2.request对象

这里说说用他来传值。

request.setAttribute("name","guo");

request.getRequestDispatcher("地址").forward(request,response);

在另外的页子中可以接收:request.getAttribute("name");

3.session对象

session对象对应于HttpSession对象,在JSP中,page指令有一个属性和session相关,这个属性的名字也叫做session,倘若他的值被设置为false,

那么在这个JSP页面中就不能使用session。

注意这里因为是内置对象,所以不用再生成,直接使用即可。

setAttribute(java.lang.String name, java.lang.Object value)

getAttribute(java.lang.String name) 返回值为object

4.application

application对象时一个对web应用有效的全局变量,他实现了ServletContext接口,注意他是全局的,也就是说所有的客户端访问的都是同一对象

setAttribute(java.lang.String name, java.lang.Object value)

getAttribute(java.lang.String name) 返回值为object

5.四个作用域对象的总结

如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里,从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。

如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。 所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使

用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。

如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。 所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个
请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。

如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用,整个应用是指从应用启动,到应用结束,可以简单理解为从服务器启动,到服务器关闭 。

 

6.exception

exception对象是Throwable的实例,他表示的是JSP中的异常信息,注意exception这个隐含对象并非在所有的JSP页面中都可以用,如果要使用

这个对象,必须将此JSP的page指令的isErrorPage属性值设置为true。

他的使用我举个例子:

error.jsp中:

设置他为错误页面:<%@ page isErrorPage="true" %>

jsp代码:<%

  Date date=new Date();
  SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
  String s=sdf.format(date);
  out.println("您出错了,请您检查");
  out.println("错误时间:"+s+"<br>");
  out.println("错误类型:"+exception);
  %>

web.xml文件中:

<error-page>

  <exception-type>java.lang.Throwable</exception-type>
  <location>/error.jsp</location>>
  </error-page>

通过上面的设置,整个网站的错误信息都可以集中到error.jsp中取处理。自己试着弄一个错误页面:index.jsp

  <%

    int a=3;
    out.println(a/0);
    %>

 

转载于:https://www.cnblogs.com/snake-hand/archive/2013/06/09/3130055.html

你可能感兴趣的文章
从零开始——MySql01
查看>>
基于线程池的线程管理(BlockingQueue生产者消费者方式)实例
查看>>
sqlmap
查看>>
给出随机存储器(RAM)和只读存储器(ROM)的差别
查看>>
CSS3 3D Transform
查看>>
js深拷贝
查看>>
http和socket之长连接和短连接区别(转)
查看>>
【HTML】网页中如何让DIV在网页滚动到特定位置时出现
查看>>
文件序列化
查看>>
C++11 中的线程、锁和条件变量
查看>>
HDU 2485 Destroying the bus stations(!最大流∩!费用流∩搜索)
查看>>
Oracle关于用户信息的一些SQL语句
查看>>
2019-02-28处理公司同事无法上网事件记录
查看>>
HTCVive使用
查看>>
Javascript 浏览器检测
查看>>
Java程序员常用工具类库
查看>>
头文件有h和没有h的区别
查看>>
数据库的查询与视图
查看>>
洪涝有源淹没算法及淹没结果分析
查看>>
Flex在使用无线电的button切换直方图横坐标和叙述性说明
查看>>