Web服务端技术:Jsp应用与内置对象

1 JSP内置对象

        在JSP开发中,会频繁使用到一些对象,使用这些对象每次都要创建吗?

例如Servlet中的HttpSession、ServletContext、HttpServletRequest、HttpServletResponse等。

为了简化Web应用程序的开发,JSP2.0规范中提供了9个隐式(内置)对象。

        这些创建好的对象就叫内置对象

1 使用out对象向客户端发送文本内容 

        out对象

        out对象类型为JspWriter,相当于带缓冲区的PrintWriter(response.getWriter())。

        对比:

        PrintWriter write(内容):直接向浏览器写出内容

        JspWriter write(内容):向JSP缓冲区写出内容

 

<%= "1-aaaa" %>

    2-bbbb
  
<%
    out.write("3-cccc");
    response.getWriter().write("4-dddd");
 %>

转换为java文件

输出结果 

 3. JspWriter out,先将内容写入到内置缓冲区,再转移到response缓冲区

4. response.getWriter().write 放到response缓冲区

5. tomcat服务器会默认提取response缓冲区中的内容

JSP页面的缓冲触发:

        1、缓冲池满

        2、刷新缓区

        3、关闭缓区

        4、执行完jsp页面

有什么办法out对象可以直接将数据写入Servlet引擎提供的缓冲区中?

        可以通过page指令中操作缓冲区的buffer属性来实现

pageContext对象

        在JSP页面中,使用pageContext对象可以获取JSP的其他8个隐式对象。pageContext对象是javax.servlet.jsp.PageContext类的实例对象,它代表当前JSP页面的运行环境,并提供了一系列用于获取其他隐式对象的方法。

pageContext对象作用范围

        pageContext操作属性的相关方法中

                参数name指定的是属性名称

                参数scope指定的是属性的作用范围

        pageContext对象的作用范围有4个值

                pageContext.PAGE_SCOPE:表示页面范围。

                pageContext.REQUEST_SCOPE:表示请求范围。

                pageContext.SESSION_SCOPE:表示会话范围。                                 

                pageContext.APPLICATION_SCOPE:表示Web应用程序范围。

也可以在四个域对象中自动搜索

<%
 // findAttribute():在四个域中自动搜索
 // 顺序:page域 -> request域 -> session域 -> context域
 String msg = (String) pageContext.findAttribute("message");
%>

        注意: 当调用findAttribute()方法查找名称为name的属性时,会按照page、request、session和application的顺序依次进行查找,如果找到,则返回属性的名称,否则返回null

exception对象

         JSP引擎在执行过程中,可能会抛出种种的异常。exception对象表示的就是JSP引擎在执行代码过程中抛出的种种异常。

        exception对象是java.lang.Exception类的实例对象,它用于封装JSP中抛出的异常信息。

注意: exception对象只有在错误处理页面才可以使用,即page指令中指定了属性<%@ page isErrorPage="true"%>的页面。

Exception常用方法

page

        应答或请求的page对象,page对象代表JSP本身,只有在JSP页面内才是合法的。page对象本质上是包含当前Servlet接口引用的变量,可以看作是this关键字的别名。

        作用范围:本页面取得,服务器跳转后无效。所设置的属性仅在当前页面内有效。

session对象

        session对象代表用户会话,它在用户访问网站时创建,并在用户关闭浏览器或会话过期时销毁。在JSP页面中,可以通过session对象存储和获取会话数据,可以跨多个请求和页面共享数据。

        注意的是,session对象是与用户会话相关的,因此每个用户的session对象是独立的,不会相互干扰。

session原理

session方法

        1.setAttribute(String name, Object value):将一个属性值存储到session对象中,可以在后续的请求中获取。

        2.getAttribute(String name):从session对象中获取指定名称的属性值

        3.removeAttribute(String name):从session对象中删除指定名称的属性值。

        4.setMaxInactiveInterval():设置session的过期时间。

        5.invalidate():使当前会话失效,删除所有的session属性值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值