手机版

jsp servlet javabean实现数据分页方法的完整示例

时间:2021-09-22 来源:互联网 编辑:宝哥软件园 浏览:

本文描述了利用jsp servlet javabean实现数据分页的方法。分享给大家参考,如下:

在这里,以做与记的心态,记录学习过程,学得快,忘得快,怕忘,以备后用。使用的部分代码是在网上找到,自己修改,加上自己的理解。不知道是不是原创,只是保留了自己的学习记录。

用法:PostgreSQL数据库,dom4j,JSP,Servlet。

首先是工程模式,全局视图方便读者和自己查看和使用。

思考的是:

使用config.xml文件记录配置信息,便于数据库的更改、移植和重用。DOM4JUtil.java用于解析xml属性文件以获取所需数据。PostgreSQL_Util.java子包数据连接和数据库操作。PageProperties.java是表分页属性。javaBeanPageProperties.java封装了分页操作。Page.java正在传呼主操作。tablePage.jsp是效果显示界面。

使用了以下第三方jar包:

Dom4j-1.6.1.jar用于xml文件解析postgresql-9.3-1101.jdbc4.jar用于到postgresql数据库的jdbc连接。

分页效果如下:点击上一页和下一页即可翻页,进入指定的页面跳转(跳转到超出范围的第一页或最后一页)。具体实现请参考详细代码,我已经贴出来了。作为一个年轻的菜鸟,他正处于学习阶段。有大神指导当然更好。我希望你能给我你的建议!

二、具体代码实现。

1.config.xml数据库连接信息属性文件。

?xml版本='1.0 '编码='utf-8 '?DOCTYPE postgres[!ELEMENT postgres(驱动程序、url、用户名、pwd)!元素驱动程序(#PCDATA)!元素url (#PCDATA)!元素用户名(#PCDATA)!ELEMENT pwd(# PCDATA)]postgres driverorg.postgresql.Driver/driver urljdbc : PostgreSQL ://localhost :5432/Java/URL usernameadmin/username pwdk42 JC/pwd/postgres 2、DOM4JUtil.java

包util导入org . dom4j . document;import org . dom4j . document exception;导入org . dom4j . element;import org . dom4j . io . SaxReader;/* * *用于解析xml属性文件* @ author Johnson muer * */public class dom4j util { private static element root=null;静态{//静态代码块//创建解析对象SAXReader Sr=new SAXReader();//获取当前项目路径//字符串URL=系统。getproperty ('user。dir’);字符串URL=dom4jutil . class . GetReSource(')。getPath();//system . out . println(URL);尝试{//通过文件路径document doc=Sr . read(URL ' config . XML ')获取配置文件信息;//获取根节点root=doc . GetRootElement();} catch(document exception e){ e . printstacktrace();}}公共静态字符串getpostgresdata(string str){//基于根节点,获取配置文件数据Element e=root . Element(str);string data=e . gettext();返回数据;} public static void main(String[]args){//String URL=dom4jutil . class . getresource(' . ').getPath();//system . out . println(system . getproperty(' user . dir '));//system . out . println(URL);string driver=getPostgresData(' driver ');字符串URL=getPostgresData(' URL ');System.out.println(驱动程序);system . out . println(URL);}}3、PostgreSQL_Util.java

包跑龙套导入Java。SQL。PreparedStatement导入java.sql。语句;导入Java。SQL。连接;导入Java。SQL。Drivermanager导入Java。SQL。resultset导入Java。SQL。SqLexception导入Java。乌提尔。列表;公共类PostgreSQL _ Util { private static DOM4JUtil DOM=new DOM4JUtil();私有静态连接c=空;私有静态结果集rs=空私有静态线驱动程序=dom.getPostgresData('驱动程序');私有静态字符串URL=DOM。getpostgresdata(' URL ');私有静态字符串用户名=DOM。getpostgresdata(' username ');私有静态字符串pwd=DOM。getpostgresdata(' pwd ');public Postgresql _ Util(){ try { class。FOrname(驱动程序);c=Drivermanager。GetConnection(网址);} catch(class notfoundexception e){ system。出去。println('未找到指定类:' e . Getmessay());} catch(SQLException e){ system。出去。println('获取连接异常:' e . Getmessay());} } /** * 数据查询方法(语句)* @ param sql * @ return * @抛出结构化查询语言异常*/public ResultSet executeQuery(字符串sql)抛出结构化查询语言异常{语句创建语句();RS=s . execute query(SQL);返回RS;} /** * 重载方法(PreparedStatement)* @ param SQL * @ param list * @ return * @抛出SQLException */public ResultSet执行查询(字符串SQL,列表对象列表)抛出SQLException { PreparedStatement PS=c . PreparedStatement(SQL);for(int I=0;伊利斯特。size();I){系统。出去。println(列表。get(I));系统。出去。println(I 1);ps.setObject(i 1,列表。get(I));} RS=PS。execute query();c .关闭();返回RS;} /** * 数据更新方法(添加,删除,更改)(语句)* @ param sql * @抛出Sqlexception */public int执行更新(字符串sql)抛出SQLException{语句创建语句();执行更新;c .关闭();返回我;} /** * 重载方法(PreparedStatement)* @ param SQL * @ param list * @抛出SQLException */public int执行更新(字符串SQL,列表对象列表)抛出SQLException { PreparedStatement PS=c . PreparedStatement(SQL);for(int I=0;伊利斯特。size();i ){ ps.setObject(i 1,list。get(I));} int I=PS。执行update();c .关闭();返回我;} /** * 单独的获取连接* @返回* @抛出类别未找到例外* @抛出SQLException */公共静态连接getConnection()抛出ClassNotFoundException,SQLException{ Class.forName(驱动程序);c=Drivermanager。GetConnection(网址);返回c .}}4、PageProperties.java

包装豆;导入Java。SQL。resultset公共类页面属性{ private int currentPage//当前页号private int totalPages//总页数private int totalRecords//总数据条数私有结果集RS;//动态结果集公共页面属性(){ super();}公共页面属性(int current page、int totalPages、int totalRecords、ResultSet RS){ super();这个。当前页面=当前页面;this.totalPages=totalPagesthis。记录总数=记录总数;this . RS=RS } public int getCurrentPage(){ return currentPage;} public void setCurrentPage(int current page){ this。当前页面=当前页面;} public int getTotalPages(){ return totalPages;} public void setTotalPages(int TotalPages){ this。TotalPages=TotalPages} public int getTotalRecords(){ return totalRecords;} public void setTotalRecords(int total records){ this。记录总数=记录总数;} public ResultSet getRs(){ return RS;} public void SEts(result SEt RS){ this。RS=RS}}5、TablePage.java

豆包;导入java.sql.ResultSet:公共类页面属性{ private int当前页面;//你好专用int totalPages://阿金私人(同Internationalorganizations)国际组织总计记录;//号私人结果集rs/吴经盛(音译)公共页面属性(){ super();}公共页面属性(int current page、int totalPages、int totalRecords、resultset RS){ super();此。currentpage=currentpagethis。totalpages=totalpagesthis。记录总数=记录总数;这。RS=RS } public int getcurrent page(){ 0返回当前页;}公共参见设置当前页面(int current page){ this。当前页面=当前页面;} public int getTotalPages(){ 0返回总计页;} public see settotages(int total pages){ this。总页数=总页数;} public int gettotalres(){返回记录总数;} public void settotalromrocates(int total records){ this。记录总数=记录总数;} public resultset AVS(){ return RS;}公共参见setrs(resultset RS){ this。RS=RS}}6页。爪哇岛贺盛瑞贺盛瑞,Servlet

小型应用程序包:导入java。超正析象管异常:导入java.io.PrintWriter:导入java.sql.ResultSet:导入java.sql.SQLException:导入javax.servlet.ServletException:导入javax.servlet.http.HttpServlet:导入javax。servlet。http。httpservletrequest:导入javax。servlet。http。httpersvletresponse:import util汇入工具postgresql _ util .导入比恩.页面属性页面属性:导入比恩.表页:public class page扩展http servlet { public void service(http servlet request,http servletresponse)引发servletexception,io异常{ request。setcharacteriqueing(' utf-8 ');回应。设置内容类型(' text/html);charset=utf-8 ");打印输出=响应。getwriter();/**阿久表页云娥*/表页TB=新表页();//范希洛范希洛int当前页面=TB。当前页面(TB。getstrpage("请求"、"页面");System.out.println(目前页面)://胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明,胡志明肺结核。setpageecord(10);//胡志明先生10号/**阿久xxSQL_Util沙吾提JDBC(JDBC)阿巧阿巧*/PostgreSQL _ util海报=新PostgreSQL _ util();尝试{ resultset RS _ count=海报。执行查询(“从学生中选择计数(*)作为c”);rs_count.next()://范思哲范思哲int记录总数=RS _ count。getint(' c ');//不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不int总页数=TB。gettotalpages(记录总数):if(当前页面合计页面){当前页面=合计页面(当前页总数)://范仲淹?范仲淹} //我的天啊,我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊结果集RS=TB。getpageresultset(海报。执行查询('从学生中选择*,当前页面);/**吴经熊JavaBean */页面属性PP=新页面属性(当前页面、totalPages、totalRecords、RS);/**是吗JavaBean s(小豆子)贺盛雄(音译)*/request.setAttribute('result ',PP);请求。getrequestspacher(' table page。JSP ').前进(请求、响应);} catch(SQL异常e){ system。出去。println(' class page 3360 ' e . getmessage());//e . printstacktrace();} } 7、tablepage。jsp哎哎哎哎哎哎

“% @”页面语言=“Java”导入=“Java”。乌提尔。* "页面编码=' utf-8 ' % % % @页面导入=' Java。SQL。结果集“% % @页面导入=”bean .页面属性" % @ taglib前缀=' c ' uri=' http://Java。星期日com/JSP/JSTL/core " % % String path=request。GetContextPath();字符串基本路径=请求。getscheme()' ://'请求。getservername()“:”请求。getserverport()“path ”/;%!' DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' HTML标题简单数据分页/title meta http-equiv=' pragma ' content=' no-cache ' meta http-equiv=' cache-control ' content=' no-cache ' meta http-equiv=' expires ' content=' 0 ' meta http-equiv=' keywords ' content=' keywords 1,keywords 2,keywords 3 ' meta http-equiv=' description ' content='这是我的页面!- link rel='样式表type=' text/CSS ' href=' style。CSS '-/头体表tr TD姓名运输署/运输署性别运输署/运输署年龄运输署/运输署分数/TD/tr %页面属性PP=(页面属性)请求。GetAttribute(' result ');结果集RS=PP。GetRS();% % int I=1;而(RS。next()){ % tr TD %=RS。GetObject(1)%/TD TD %=RS。GetObject(2)%/TD TD %=RS。GetObject(3)%/TD TD %=RS。GetObject(4)%/TD/tr % I;if(i10)断裂;} % br/span%=pp.getTotalPages() %页/span跨度共%=pp.getTotalRecords() %条数据/span跨度本页%=i-1 %条/span跨度第%=pp.getCurrentPage() %页/span p align=' center ' % if(PP。GetCurrentPage)(1){ % a href=' %=path %/page?page=%=pp.getCurrentPage() - 1% '上一页/a % } % % if(PP。getcurrentpage()PP。gettotalpages()){ % a href=' %=path %/page?page=%=pp.getCurrentPage() 1% '下一页/a % } %输入类型=' text ' name=' input _ text ' id=' input _ text ' size=' 1 '/输入类型=' button ' name=' skip ' id=' skip ' value='跳转onclick=' skip();/script函数skip(){ var v=document。getelementbyid(' input _ text ').价值;location.href='page?page=' v;}/脚本/p/表格/正文/html初步看,感觉后台代码实在是繁琐,但这是考虑到程序健壮性与可移植性,方便代码重用。以后要用,根据自己的需要在属性文件(config.xml)中配置相关JDBC驱动,在jsp页面通过请求获得后台小型应用程序的转发结果("结果"),结合页面属性(PageProperties.java类)即可实现效果。

当然,这也是因为个人学习,倾向于多用点东西。

希望本文所述对大家jsp程序设计有所帮助。

版权声明:jsp servlet javabean实现数据分页方法的完整示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。