jsp 隐含对象

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的影城管理系统,源码+数据库+论文答辩+毕业论文+视频演示 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多生活之,随之就产生了“小徐影城管理系统”,这样就让小徐影城管理系统更加方便简单。 对于本小徐影城管理系统的设计来说,系统开发主要是采用java语言技术,在整个系统的设计应用MySQL数据库来完成数据存储,具体根据小徐影城管理系统的现状来进行开发的,具体根据现实的需求来实现小徐影城管理系统网络化的管理,各类信息有序地进行存储,进入小徐影城管理系统页面之后,方可开始操作主控界面,主要功能包括管理员:首页、个人心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台;首页、电影信息、电影资讯、个人心、后台管理、在线客服等功能。 本论文主要讲述了小徐影城管理系统开发背景,该系统它主要是对需求分析和功能需求做了介绍,并且对系统做了详细的测试和总结。具体从业务流程、数据库设计和系统结构等多方面的问题。望能利用先进的计算机技术和网络技术来改变目前的小徐影城管理系统状况,提高管理效率。 关键词:小徐影城管理系统;Spring Boot框架,MySQL数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值