1. jsp怎么用ajax做分页
利用ajax实现,和没有使用ajax,技术难度上差不多。我是这样实现的:
首先,做一个javabean主要是用来存储你要查询的数据,就是getxx和setxx
二 做一个,里面包括了getTotalSize()//总个数,getPages(int pageSize)//总页数和List transferPagination(int currPage,int pageSize)//数据列表
在数据列表的函数中是调用了一个存储过程来是实现分页查询的,存储过程如下:
create proc procPagination
@currPage int,--当前页
@pageSize int,--每页大小
@tableName varchar(50),--表名
@tableId varchar(50)--查询字段
as
begin
declare @sql varchar(8000)
set @sql = 'select top '+convert(char(5),@pageSize)+' * from '+@tableName+' where '+@tableId+' not in '
set @sql = @sql +'(select top '+convert(char(5),@pageSize*(@currPage-1))+' '+@tableId+' from '+@tableName
set @sql = @sql + ' order by '+@tableId+')'
exec(@sql)
end
三 在一个b.jsp页面中调用上面的方法,得到要显示页码的数据列表
四 在另外一个a.jsp中利用ajax发送请求到b.jsp中得到其中的数据列表,在ajax中主要负责的是:
得到当前的页数,得到总页数,得到每页要显示的数据条数等
如果你用jsp做过分页的话 应该就明白了,如果不明白,把邮箱留下,发给你..
2. 在jsp页面上改变页面的数据,但页面不刷新的方法有哪些
使用Ajax实现,单纯的使用JavaScript不可以与后台进行数据交互。 jquary是JavaScript框架,可以简化Ajax的操作,原始的Ajax方法不再详述, 这里给给使用jquary的Ajax方法: 一:前台页面: <script type="text/javascript"> function checkUserName(){ $.ajax({ type: "POST",//请求的方式,有“GET”、“POST” url: "User.do?method=jqueryAjax",//请求的URL,这里使用了struts框架 data: "name=hejiyuan",//发送的数据 dataType: "xml",//返回的数据格式 success: callback //交互完成后,并且正确响应的回调函数 }); } function callback(data){ //首先将DOM对象转换成jQuery对象 var jquaryOBJ = $(data); var city = jquaryOBJ.children(); var text = city.text(); } </script> <body> <input id="name" type="text" /> <input type="button" value="验证" onclick="checkUserName()"> <div id="returnValue"></div> </body> 二、后台action方法代码 public ActionForward jqueryAjax2(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { response.setCharacterEncoding("GBK"); // 注意返回的数据类型设置为XML类型 response.setContentType("text/xml"); PrintWriter out = response.getWriter(); StringBuffer buffer = new StringBuffer(); buffer.append("<?xml version=\"1.0\" encoding=\"GBK\"?>"); buffer.append("<citys><city><name>永安</name><value>7</value></city>" + "<city><name id='2'>沙县</name><value>8</value></city></citys>"); out.println(buffer.toString()); out.flush(); out.close(); return null; }
3. jsp中,用ajax获取数据
jsp中用ajax获取数据的例子如下:
jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<HEAD>
<TITLE>留学生系统</TITLE>
<META http-equiv=Content-Type content="text/html; charset=GBK">
<SCRIPT language=JavaScript type=text/JavaScript>
var XMLHttpReq = false;
//ajax接口
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
XMLHttpReq = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
XMLHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
}catch(e){
try{
XMLHttpReq = new ActiveXObject("Mircsoft.XMLHTTP");
}catch(e1){}
}
}
}
function sendRequest(url){
createXMLHttpRequest();
XMLHttpReq.open("GET",url,true);
XMLHttpReq.onreadystatechange = processResponse;
XMLHttpReq.send(null);
}
function processResponse(){
if(XMLHttpReq.readyState == 4){
if(XMLHttpReq.status == 200){
var res = XMLHttpReq.responseXML.getElementsByTagName("res")[0].firstChild.data;
window.alert(res);
document.myform.userid.value="";
document.myform.pwd.value="";
}else{
window.alert("你请求的页面有异常1");
}
}
}
function userCheck(){
var userid = document.myform.userid.value;
var pwd = document.myform.pwd.value;
if(userid == ""){
window.alert("用户名不能为空");
document.myform.pwd.value="";
document.myform.userid.focus();
return false;
}else{
sendRequest("login?userid="+userid);
}
}
function pwdCheck(){
var pwd = document.myform.pwd.value;
var pwd2 = document.myform.pwd2.value;
if(pwd!=pwd2){
window.alert("密码不一致");
document.myform.pwd.value="";
document.myform.pwd2.value="";
document.myform.pwd.focus();
return false;
}
}
</SCRIPT>
<LINK href="css/css.css" type=text/css rel=stylesheet>
</HEAD>
<body>
<table width="778" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" >
<tr>
<td width="17%"><img src="images/logo.jpg" width="124" height="101"></td>
<td width="558" height="101" background="images/banner.jpg"><div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="558" height="101">
<param name="movie" value="images/2.swf">
<param name="quality" value="high">
<embed src="images/2.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="558" height="101"></embed>
<param name="wmode" value="transparent">
</object>
</div></td>
<td width="11%"><table width="100%" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td height="30" class="style1"><div align="center">设为首页</div></td>
</tr>
<tr>
<td height="30" class="style1"><div align="center">收藏本站</div></td>
</tr>
<tr>
<td height="30" class="style1"><div align="center">联系我们</div></td>
</tr>
</table></td>
</tr>
</table>
<form method="post" action="control.jsp?action=register" name="myform">
<table width="300" border="0" align="center" bgcolor="#F0F0F0">
<tr>
<td align="center">用户名</td>
<td><input name="userid" type="text" size="20" onblur="userCheck()"></td>
</tr>
<tr>
<td align="center">真实姓名</td>
<td><input name="username" type="text" size="20"/></td>
</tr>
<tr>
<td align="center">性别</td>
<td>
<input type="radio" name="sex" value="0" checked="checked">男
<input type="radio" name="sex" value="1">女
</td>
</tr>
<tr>
<td align="center">密码</td>
<td><input name="pwd" type="password" size="20"/></td>
</tr>
<tr>
<td align="center">密码确认</td>
<td><input name="pwd2" type="password" size="20" onblur="pwdCheck()"/></td>
</tr>
<tr>
<td align="center">电子邮箱</td>
<td><input name="email" type="text" size="20"/></td>
</tr>
<tr>
<td align="center">学校</td>
<td><input name="school" type="text" size="20"/></td>
</tr>
<tr>
<td align="center">电话号码</td>
<td><input name="phonenum" type="text" size="20"/></td>
</tr>
<tr>
<td align="center"><img border=0 src="image.jsp"></td>
<td><input type=text name=in maxlength=4 size="8"></td>
</tr>
<tr>
<td align="center"><input type="submit" value="确定" /></td>
</tr>
</table>
</form>
</body>
</html>
4. Jsp问题:如何点击一个页面元素,或发起了一个Ajax 请求,但不刷新页面,就能使session
jsp radio button点击时要通过触发ajax接口进行异步获取检索数据并展示在jsp页面,页面进行局部刷新。
例如,页面上有radio,需要绑定change事件:
radio change事件
$('input:radio[name="role"]').change( function()
当一个元素,或者其内部任何一个元素失去焦点的时候会触发这个事件。这跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况。
$("#username").focusout(function()
var roles = document.getElementsByName("role");
此处进行ajax调用:
$.ajax({
type: "GET",
url: "test.json",
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
$('#resText').empty(); //清空resText里面的所有内容
var html = '';
$.each(data, function(commentIndex, comment){
html += '<div class="comment"><h6>' + comment['username']
+ ':</h6><p class="para"' + comment['content']
+ '</p></div>';
});
$('#resText').html(html);
}
});
5. 我想在我的jsp页面中用ajax
Ajax其实非常简单,楼上列举的是封装了Ajax的第三方包,不适合初学者,只会让Ajax看起来更复杂。
Ajax就是对象XMLHttpRequset的使用。
XMLHttpRequest 简介
要真正实现这种绚丽的奇迹,必须非常熟悉一个 JavaScript 对象,即 XMLHttpRequest。这个小小的对象实际上已经在几种浏览器中存在一段时间了,它是本专栏今后几个月中要介绍的 Web 2.0、Ajax 和大部分其他内容的核心。为了让您快速地大体了解它,下面给出将要用于该对象的很少的几个 方法和属性。
open():建立到服务器的新请求。
send():向服务器发送请求。
abort():退出当前请求。
readyState:提供当前 HTML 的就绪状态。
responseText:服务器返回的请求响应文本。
<script language="javascript" type="text/javascript">
var request = new XMLHttpRequest();
var url = "a.jsp?paramName=paramValue"; //你要访问的服务器端的地址和参数。
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
function updatePage() {
if (request.readyState == 4)
if (request.status == 200)
alert(request.responseText);
}
</script>
这就是一个最简单的Ajax的例子。
这里有适合初学者学习Ajax的文章:
http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/
6. jsp作为后台,用ajax,怎么往另一个jsp提交数据
jsp中用ajax提交到另外一个表单数据:
jsp/ajax提交成功后采用以下方式跳转专:
1、本页面跳转:"window.location.href"、"location.href"
2、上一层页面跳转:"parent.location.href"
3、最外层的页属面跳转:"top.location.href"
举例说明:
如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写
"window.location.href"、"location.href":D页面跳转
"parent.location.href":C页面跳转
"top.location.href":A页面跳转
如果D页面中有form的话,
<form>: form提交后D页面跳转
<form target="_blank">: form提交后弹出新页面
<form target="_parent">: form提交后C页面跳转
<form target="_top"> : form提交后A页面跳转
7. 怎么使用js或ajax让jsp页面及页面所包含的xml等静态文件不缓存
还有一种方法就是
在请求url的后面加上随机数
比如说请求a.aspx
那么可以写成$.get("a.aspx?"+Math.random(),function(data){});
这种就不会被缓存
8. 在jsp中怎么运用ajax
使用Ajax的主要过程包括
1、创建XMLHttpRequest对象,
2、设置回发函数,
3、指定信息发送位置、提交的方式和异步与否,
4、发送请求。
javaScript代码如下所示:
1:<scripttype="text/javascript">
2:varXMLHttpRequestIns=null;
3:
4:functionAjaxF(){
5://创建Ajax核心对象并传递参数
6:CreateXMLHttpRequest();
7://设置参数
8:XMLHttpRequestIns.onreadystatechange=handleStateChange;//设置回发函数
9://获取内容的位置
10:XMLHttpRequestIns.open("GET","XMLFile1.xml",true);
11://发送
12:XMLHttpRequestIns.send(null);
13:}
14:functionCreateXMLHttpRequest(){
15:if(window.ActiveObject){
16:XMLHttpRequestIns=newActiveXObject("Microsoft.XMLHTTP");
17:}
18:elseif(window.XMLHttpRequest)
19:{
20:XMLHttpRequestIns=newXMLHttpRequest();
21:}
22:}
23://对返回数据进行处理
24:functionhandleStateChange(){
25:if(XMLHttpRequestIns.readyState==4){
26:
27:if(XMLHttpRequestIns.status==200){
28:alert("服务器消息"+XMLHttpRequestIns.responseText);
29:}
30:}
31:}
32:</script>
9. jsp+ajax实现 注册、登录功能。
一、处理ajax请求的jsp文件:auto.jsp , 你按照这样就没问题了
<%@ page contentType="text/html; charset=gb2312" %>
<%
//设置输出信息的格式及字符集
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
out.println("<response>");
for(int i=0;i<2;i++){
out.println("<name>"+(int)(Math.random()*10)+
"型笔记本</name>");
out.println("<count>" +(int)(Math.random()*100)+ "</count>");
}
out.println("</response>");
out.close();
%>
二、发送ajax请求的html文件:autoRefresh.html
<head>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
</head>
<script language="javascript">
var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
//发送请求函数
function sendRequest() {
createXMLHttpRequest();
var url = "auto.jsp";
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求
}
// 处理返回信息函数
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
DisplayHot();
setTimeout("sendRequest()", 1000);
} else { //页面不正常
window.alert("您所请求的页面有异常。");
}
}
}
function DisplayHot() {
var name = XMLHttpReq.responseXML.getElementsByTagName("name")[0].firstChild.nodeValue;
var count = XMLHttpReq.responseXML.getElementsByTagName("count")[0].firstChild.nodeValue;
document.getElementById("proct").innerHTML = name;
document.getElementById("count").innerHTML = count;
}
</script>
<body onload =sendRequest()>
<table style="BORDER-COLLAPSE: collapse" borderColor=#111111 cellSpacing=0 cellPadding=0 width=200 bgColor=#f5efe7 border=0>
<TR>
<TD align=middle bgColor=#dbc2b0 height=19 colspan="2"><B>正在热卖的笔记本</B> </TD>
</TR>
<tr>
<td height="20"> 型号:</td>
<td height="20" id="proct"> </td>
</tr>
<tr>
<td height="20"> 销售数量:</td>
<td height="20" id="count"> </td>
</tr>
</body>
</table>