友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

JSP入门教程(DOC格式)-第33章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






    可以通过 servletConfig 获得 ServletContext,这是整个web 应用共享 

    的一个对象。  



7。  page  



   Object page = this ;     



   page 就代表当前 jsp 对象,也可以直接使用 this 引用。  



8。  config  



    ServletConfig config = getServletConfig();  



    这是在 servlet 初始化时由服务器传入的对象,可以通过它获得 web。xml 

    中定义的初始化参数。  



9。  exception  



   想在 jsp 中使用这个对象需要满足一些条件了。  



    首先我们要在 14…05/index。jsp 中故意抛出一个异常。  



                                   130 / 148  


…………………………………………………………Page 131……………………………………………………………

                                           



         

         



       str 值是 null,直接在 null 上调用 length()方法会引发 

       NullPointerException,然后我们可以看到页面第一行使用 jsp 指令 

        (directive)设置了errorPage=〃error。jsp〃,这样在出现异常的时候 

       就会自动 forward 到 error。jsp 中。现在看看 error。jsp 中有些什么。  



         

         

         

             

                 

               index  

             

             

                 

             

         

                         



       最主要的是在 jsp 指令(directive)中设置 isErrorPage=〃true〃,这样 

       我们就可以在 jsp 中使用 exception 对象了,实际上这个异常是从 

       request 中取出来的。  



到此为止,jsp 九大默认对象已经讲解完毕,其中常用的还是四个作用域对应的 

对象,其他的了解即可。  



                                       131 / 148  


…………………………………………………………Page 132……………………………………………………………

                                        



                            第 15 章 分页  



注意  



实际上分页并不属于 jsp 的基础知识范畴,不过分页毕竟是非常常用的一个功 

能,其中也会涉及到 jsp 的一些应用,所以还有很有价值一看的。  



如果你不满足以下任一条件,请继续阅读,否则请跳过此后的部分,进入下一章: 

第 16 章 Never End。。。。  



    1。  了解如何进行数据库分页。  

   2。  了解如何使用 jstl 标签替换分页的 jsp 代码。  



15。1。 数据库分页  



所谓的分页,就是要查询的数据太多了,一次性显示出来的话,既不容易查看也 

影响性能。  



就比如我们这里有 39 条数据,分 8 页显示出来,每页 5 条记录。  



                                                                               



                                     132 / 148  


…………………………………………………………Page 133……………………………………………………………

                                                



                                                                                             



首先说数据库,里边只有一张表 bean,三个字段 id; title 和 add_date。  



…bean  

create table bean(  

    id bigint; …主键  

    title varchar (100); …标题  

    add_date datetime …时间  

);  

          



对应的 Bean。java 咱们就不用写了,只看一看后台去数据库读取数据库的 

BeanServlet。java。  



package anni;  

  

import java。io。*;  

import java。sql。*;  

import java。util。*;  

import javax。servlet。*;  

import javax。servlet。http。*;  

  

public class BeanServlet extends HttpServlet {  

    public void doGet(HttpServletRequest request; HttpServletResponse  

response)  

            throws ServletException; IOException {  

  

        Connection conn = null;  

        Statement state = null;  

        ResultSet rs = null;  

  



                                            133 / 148  


…………………………………………………………Page 134……………………………………………………………

                                             



        // 获得当前页码  

        int pageNo = 1;  

        try  {  

            pageNo = Integer。parseInt(request。getParameter(〃pageNo〃));  

        } catch (Exception ex) {  

        }  

        if  (pageNo 《 1) {  

            pageNo = 1;  

        }  

        request。setAttribute(〃pageNo〃; pageNo);  

  

        List list = new ArrayList();  

        int count = 0;  

        // 根据页码从数据库中获得对应的数据  

        try  {  

            conn = DbUtils。getConn();  

            state = conn。createStatement();  

  

            rs = state。executeQuery(〃select limit 〃 + (pageNo * 5 5)  

+ 〃 5 * from bean〃);  

            while  (rs。next()) {  

                Bean bean = new Bean();  

                bean。setId(rs。getLong(1));  

                bean。setTitle(rs。getString(2));  

                bean。setAddDate(rs。getTimestamp(3));  

  

                list。add(bean);  

            }  

            rs。close();  

  

            rs = state。executeQuery(〃select count(*) from bean〃);  

            if  (rs。next()) {  

                count = rs。getInt(1);  

            }  

  

        } catch (Exception ex) {  

            ex。printStackTrace();  

        } finally  {  

            DbUtils。close(rs; state; conn);  

        }  

  

        request。setAttribute(〃count〃; count);  

        request。setAttribute(〃list〃; list);  



                                         134 / 148  


…………………………………………………………Page 135……………………………………………………………

                                        



        request。getRequestDispatcher(〃/query。jsp〃)。forward(request;  

response);  

    }  

}   



代码长了,分三段来看:  



       // 获得当前页码  

       int pageNo = 1;  

       try  {  

           pageNo = Integer。parseInt(request。getParameter(〃pageNo〃));  

       } catch (Exception ex) {  

       }  

       if  (pageNo 《 1) {  

           pageNo = 1;  

       }  

       request。setAttribute(〃pageNo〃; 
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!