总结

一.JspWriter与PrintWriter的关系:

  1.都是继承自java.io.Writer类.

    JspWriter可以在JSP页面中直接用out对象输出.可以用pageContext.getOut();得到JspWriter对象.PrintWrietr在JSP页面中必须用

    response.getWriter();方法得到其对象.二者作用域不同.

 2.在JSP页面中同时调用两种方法向页面输出数据,

    PrintWriter中的数据会输出在JspWriter前面.如: JspWriter out1 = pageContext.getOut(); //在JSP页面中可以直接使用out对象,而不用像这样用

    pageContext.getOut();来得到JspWriter对象.这样做得到的out1和JSP页面中封装的out对象是同

    一个对象.(可以用out == out1 来判断两个对象是否相等.)

                out1.print("222");

                PrintWriter pw = response.getWriter();
                pw.print("111");
    这样做的结果,在浏览器端还是先显示 "111",然后再显示"222".说明不管JspWriter与PrintWriter在程序中的顺序怎么样,始终先会输出

    PringWriter中的数据然后再输出JspWriter中的数据.这是因为out对象相当于插入到了PrintWriter前面的缓冲区中.out对象满足一定条件时,才

    会调用PrintWriter对象的print()方法,把out缓冲区中的内容输出到浏览器端.如果想让上面的代码的按代码的先后顺序输出可以写成:

              JspWriter out1 = pageContext.getOut();

              out1.print("222");

              out1.flush(); //刷新缓冲区

              PrintWriter pw = response.getWriter();

              pw.print("111");

    *out对象调用PrintWriter对象的print( )方法输出缓冲区中的内容的条件:

    ^设置page指令的buffer属性关闭了out对象的缓存功能

    ^写入到out对象中的内容充满了out对象的缓冲区

    ^整个JSP页面结束

    ^JSP中调用了out.flush()或response.flushbuffer()
 
二、JSP九个隐含对象
           1.JSP九个隐含对象(内置对象):直接在jsp文件里使用
                 HttpServletRequest    request
                 HttpServletResponse    response
                 PageContext     pageContext (页面上下文)
                 HttpSession     session
                 ServletContext     application
                 ServletConfig     config
                JspWriter     out
                Object      page
                Throwable     exception
          2、四个作用域
              application作用域   ServletContext
               session作用域    HttpSession
               request作用域    HttpServletRequest
               page作用域    PageContext //生命周期是JSP页面编译成JAVA文件时的service方法.方法结束,生命周期也结束
           3.pageContext的findAttribute方法会依次从四个作用域去找。是按什么先后顺序找的?
               会按作用域由小到大的顺序来查找.即(page-->request-->session-->application).用pageContext.findAttribute("key");
               的好处就是不用指定作用域的类型.只要这四个作用域中有指定的key.就可以得到其对应的value;
三.全局错误处理         
             对页出现的相同的错误或异常不用在每个页面的指令头都追加errorPage="错误页面";指令.
             而可以在xml中配置全局错误处理.(必须写在xml文件的 <web-app></web-app>标签对中)
            <error-page>
                      <error-code>404</error-code>
                      <location>/404Error.jsp</location>
            </error-page>
           //用于处理404错误的全局配置.所有404错误都会转到404Error.jsp页面中.
           <error-page>
               <exception-type>java.lang.ArithmeticException</exception-type>
              <location>/ArithmeticException.jsp</location>
           </error-page>

           //用于处理算术异常的全局配置.所有算术异常都会转到rithmeticException.jsp页面中.

四.三种如何取得从 1970 年 1 月 1 日 0 时 0 分 0 秒到现在的毫秒数?

  1. System.currentTimeMillis()。

  2. new Date().getTime() 。

  3. Calendar.getInstance().getTimeInMillis()。

五.三种获取java类字节码的方法

1.Class.class

2.object.getClass()

3.Class.forName()

六:

 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 
 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
 inner join(等值连接) 只返回两个表中联结字段相等的行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值