关于JSP基本语法的练习
2017-03-24 13:02
218 查看
这是一道李兴华老师的Java Web开发实战经典里面的5.9的课后题。
先看一下题目要求:
![](http://img.blog.csdn.net/20170324113912643?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
有两种思路,一种是局部加载,只需要更新列表即可;另一种就是重新加载整个网页。
一开始做的时候,我并不清楚正确的思路是怎样的,但想想理想的状态应该是前者,但是我并不知道如何实现动态加载,我想可能是需要Ajax知识吧,应该也可以使用内部嵌入框架来实现局部加载。
在前面学的知识里并没有局部加载的相关知识,所以我看了课后题答案,发现李兴华老师的思路也会全局重新加载,而且它是重复调用同一个jsp文件。
那么好吧,开整:
首先,我们需要一个表单来盛放“首页”、“上一页”、“下一页”、“尾页”四个按钮,同时需要一个hidden类型的input标签去保存即将要显示的一页的页号:
![](http://img.blog.csdn.net/20170324121807552?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
他们的onClick事件都调用了同一个js函数:
![](http://img.blog.csdn.net/20170324121928690?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第一个参数是页号,第二个是表中所有的记录行数。
首先算出表中的数据一共能显示几页,在这里按照每页显示5行来做的,如果取余等于0说明正好,如果不等于0说明还有一页没满5行的所以加一页;
然后判断即将要显示的页号是否小于0,如果小于0了说明当前页已经是第一页了,如果大于总页数-1(因为页号从0开始计)说明已经是最后一页了。注意要return;表示不往下执行了。
最后找到表单元素,按照(.name属性的值)去找到表单中的hidden类型的input元素,通过(.value)去修改他的value值为即将要现实的页号,注意在课后题答案中以及书中都会发现写的是document.getElementById("name属性的值"),我试过,这样连编译都通不过,可能是作者笔误。然后进行提交(.submit())。
按照JDBC的流程去读取数据库:
![](http://img.blog.csdn.net/20170324123333148?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20170324123440637?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
记住这里声明的变量不要带权限修饰符,如public。
![](http://img.blog.csdn.net/20170324124200718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20170324124513689?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里总共调用两次查询操作,第一次是获取表中所有数据的数量(为了分页);第二次是获取当前页的所有数据(注意是当前页,limit语句,并不是表中的所有数据)。
![](http://img.blog.csdn.net/20170324124955310?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这一部分就是按照取出的数据,填充表格元素,值得一提的是,获取结果集的长度,然后判断是否填充满整页,如果没有填充空行,注意是空格占位符" "才会占出和其他有元素的行同样的高度。
最后,第二题加上模糊查询,注意语句一定要写对,还有中文关键字查询要记得在request.getParameter(“表单中name属性的值”)后转码,在上面填出的代码中有介绍。
![](http://img.blog.csdn.net/20170324125942387?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjUwNDM5Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
效果图:
先看一下题目要求:
有两种思路,一种是局部加载,只需要更新列表即可;另一种就是重新加载整个网页。
一开始做的时候,我并不清楚正确的思路是怎样的,但想想理想的状态应该是前者,但是我并不知道如何实现动态加载,我想可能是需要Ajax知识吧,应该也可以使用内部嵌入框架来实现局部加载。
在前面学的知识里并没有局部加载的相关知识,所以我看了课后题答案,发现李兴华老师的思路也会全局重新加载,而且它是重复调用同一个jsp文件。
那么好吧,开整:
首先,我们需要一个表单来盛放“首页”、“上一页”、“下一页”、“尾页”四个按钮,同时需要一个hidden类型的input标签去保存即将要显示的一页的页号:
他们的onClick事件都调用了同一个js函数:
第一个参数是页号,第二个是表中所有的记录行数。
首先算出表中的数据一共能显示几页,在这里按照每页显示5行来做的,如果取余等于0说明正好,如果不等于0说明还有一页没满5行的所以加一页;
然后判断即将要显示的页号是否小于0,如果小于0了说明当前页已经是第一页了,如果大于总页数-1(因为页号从0开始计)说明已经是最后一页了。注意要return;表示不往下执行了。
最后找到表单元素,按照(.name属性的值)去找到表单中的hidden类型的input元素,通过(.value)去修改他的value值为即将要现实的页号,注意在课后题答案中以及书中都会发现写的是document.getElementById("name属性的值"),我试过,这样连编译都通不过,可能是作者笔误。然后进行提交(.submit())。
按照JDBC的流程去读取数据库:
记住这里声明的变量不要带权限修饰符,如public。
这里总共调用两次查询操作,第一次是获取表中所有数据的数量(为了分页);第二次是获取当前页的所有数据(注意是当前页,limit语句,并不是表中的所有数据)。
这一部分就是按照取出的数据,填充表格元素,值得一提的是,获取结果集的长度,然后判断是否填充满整页,如果没有填充空行,注意是空格占位符" "才会占出和其他有元素的行同样的高度。
最后,第二题加上模糊查询,注意语句一定要写对,还有中文关键字查询要记得在request.getParameter(“表单中name属性的值”)后转码,在上面填出的代码中有介绍。
效果图:
相关文章推荐
- 关于JSP动态网页的一些基本语法
- JSP 基本语法总结
- JSP基本语法
- (二)JSP基本语法A
- (七)JSP基本语法--session对象
- (六)JSP基本语法E--response对象
- 关于使用el语法的jsp版本限制
- JSP基本语法C--JSP内置对象
- jsp基本语法介绍
- jsp基本语法
- JSP基本语法(上)
- jsp基本语法与简单表单处理
- jsp程序设计(二)-jsp基本语法(4)-Scriptlet
- JSP基本语法
- JSP基本语法
- jsp程序设计(二)-jsp基本语法(9)- jsp:include
- JSP 基本语法
- jsp程序设计(二)-jsp基本语法(2)-声明
- jsp程序设计(二)-jsp基本语法(6)-Taglib指令
- JSP基本语法D--request对象