jsp学习笔记---内置对象

1、 Jsp的内置对象

什么是内置对象?
在jsp开发中,会频繁使用到一些对象,如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可!,这些创建好的对象就叫内置对象!!!!

八大内置对象

       类型                        内置对象             
HttpServletRequest                request   
HttpServletResponse               response  
ServletConfig                     config   
ServletContext                    application 
HttpSession                       session       
Throwable                         exception       
Object(this)                      page  
JspWriter                         out         
PageContext                       pageContext

pageContext对象
pageContext对象的类型是PageContext,叫jsp的上下文对象,可以获取其他八个内置对象

<%//1)可以通过pageContext对象获取其他8个内置对象
        response.getWriter().write("out对象是否相等:"+(out==pageContext.getOut())+"</br>");
        out.write("request对象是否相等:"+(request==pageContext.getRequest())+"</br>");
        out.write("response对象是否相等:"+(response==pageContext.getResponse())+"</br>");
        out.write("config对象是否相等:"+(config==pageContext.getServletConfig())+"</br>");
        out.write("session对象是否相等:"+(session==pageContext.getSession())+"</br>");
    %>

2、jsp域对象

作用: 保存数据和获取数据,用于共享数据
域对象方法:

                setAttribute("name",Object) 保存数据
                getAttribute("name")  获取数据
                removeAttribute("name") 清除数据

域对象作用范围:

                page域: 只能在当前jsp页面中使用(当前页面)
                request域: 只能在同一个请求中使用(转发)
                session域: 只能在同一个会话(session对象)中使用(私有的)
                context域: 只能在同一个web应用中使用。(全局的)

ServletContext ———————————-context域

HttpServletRequet —————————– request域

HttpSession ————————————–session域 –Servlet学习的

PageContext————————————–page域 –jsp学习的

域范围常量:

PageContext.PAGE_SCOPE

PageContext.REQUEST_SCOPE

PageContext.SESSION_SCOPE   

PageContext.APPLICATION_SCOPE
<%--
        2)pageContext作为域对象使用
                2.1 可以往不同域对象中存取数据
      --%>
    <%
        pageContext.setAttribute("message","默认");
        pageContext.setAttribute("message","request信息",PageContext.REQUEST_SCOPE);
        pageContext.setAttribute("message","session's messsage",PageContext.SESSION_SCOPE);//保存到sessio域中
        pageContext.setAttribute("message","application's messsage",PageContext.APPLICATION_SCOPE);//保存到context域中
        //request.setAttribute("message","request's message"); 等价于上面的代码
    %>
    <%
        String str=(String)pageContext.getAttribute("message");
        out.write(str);
    %>
        <%--
              原则: 
            1)在哪个域中保存数据,就必须从哪个域取出数据!!!
         --%>
        <%=pageContext.getAttribute("message",PageContext.PAGE_SCOPE) %><br/>
        <%=pageContext.getAttribute("message",PageContext.REQUEST_SCOPE) %><br/>
        <%=pageContext.getAttribute("message",PageContext.SESSION_SCOPE) %><br/>
        <%=pageContext.getAttribute("message",PageContext.APPLICATION_SCOPE) %><br/>

自动在四个域中搜索数据

<%--
        findAttribute(): 在四个域自动搜索数据
            顺序: page域 -> request域  -> session域 -> context域

     --%>
    <%--  <%=pageContext.findAttribute("message") %> --%> 

Servlet技术: 开发动态资源。是一个java类,最擅长写java代码

jsp技术: 开发动态资源。通过java代码最擅长输出html代码。

servlet:

                    1)接收参数
                    2)处理业务逻辑
                    3)把结果保存到域对象中
                    4)跳转到jsp页面

Jsp:

                    1)从域对象取出数据
                    2)把数据显示到浏览器
            servlet的数据    ->   jsp页面
            List<Contact>    使用域对象 共享数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值