上次中的空白页问题,是转发跳转不过去,改为重定向方式后,跳转正常,我认为是刷新需要由浏览器发出请求,没办法由服务器直接跳转。就是重定向和转发的区别。
还有第二个问题,分页功能中,长时间的翻页后会导致页面一致加载,功能失效,原因是这句话的问题
原来的时候,后面的参数是我直接new ComboPooledDataSource();导致每分一次页,都会new一个对象,导致对象太多,服务器崩溃。我这次将ComboPooledDataSource对象写成静态,看下图
ComboPooledDataSource只有在类开始的时候创建的那一个,所以服务器相对较为稳定。
Ajax & Jquery
###Ajax
是什么?“Asynchronous Javascript And XML”(异步JavaScript和XML),这并不是新的技术,只是把原有的技术,整合到一起而已。
1.使用CSS和XHTML来表示。
2.使用DOM模型来交互和动态显示。
3.使用XMLHttpRequest来和服务器进行异步通信。
4.使用javascript来绑定调用。
有什么用?
网页如果想要刷新局部内容,那么需要重新载入整个网页,用户体验不是很好,就是为了解决局部刷新的问题,保持其他部分不动,只刷新某些地方。
###数据请求GET
1.创建对象
2.发送请求
如果发送请求的同时,还想获取数据,那么代码如下
###数据请求POST
###校验用户名是否可用
###1.搭建环境
(1)页面准备
(2)数据库准备
Servlet代码
Dao代码(此处注意在获取数据库中的数据数量时,一定是select count(*) from user ,要加上count,而且获取到的结果数量要用Long来接受,用long接受不了)
(3)jsp页面显示
###JQuery
是什么?javaScript的代码框架。
有什么用?简化代码,提高效率
核心?write less do more ,写的更少,做的更多
###load
页面代码
在此处,需要注意的是,若将
<input type="button" id="aaa" value="使用JQuery执行load方法" onclick="load()">
换成
<a href="" οnclick="load()">使用JQuery执行load方法</a>,就不会接收到服务器返回回来的数据,原因是有两次刷新,先走onClick的方法,取到数据回来之后,赋值显示,接着走href=""的路径,但是这个属性没有给值,所以会把当前的页面重新再刷新一次。所以导致看不见值。
Servlet代码
###赋值显示
* val("aa");> 只能放那些标签带有value属性
* html("aa"); ---写html代码
* text("aa");
> 其实没有什么区别,如果想针对这分数据做html样式处理,那么只能用html()
###使用JQ实现get方法
###使用JQ实现post方法
###使用JQ实现校验用户名
###实现百度搜索提示
搭建环境
1.定义首页
首页代码
JS请求代码(最后list.jsp代码反馈给了div01中,所以jsp不一定只能显示在整个页面上,也能显示在div盒子中)
2.定义数据库
Servlet代码(list.jsp反馈给了div盒子中)
提示框list.jsp代码
Dao代码(在数据库中寻找以name开头的关键词,返回一个数组中)
成果图
###使用JQ实现省市联动
1.准备页面
2.JS请求代码
(json方式)
(XML方式)
3.Servlet代码
(JSON方式,是将所有的数据做成键值对的形式)
键值对:{"name":"aaa" , "age":19}
(XStream方式,是将数据做成xml的形式,反映到jsp文件中)
<list>
<city>
<id>1<id>
<pid>1</pid>
<cname>深圳</cname>
</city>
<city >
<id>2<id>
<pid>1</pid>
<cname>东莞</cname>
</city>
</list>
成果图