问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

同一个jsp页面中 局部刷新问题

发布网友 发布时间:2022-04-21 06:05

我来回答

9个回答

热心网友 时间:2022-04-21 07:34

文件一; GetUser.java

package ajax;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetUser extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userno=request.getParameter("no");

List<User> list=new ArrayList<User>();

User user1=new User();
User user2=new User();
User user3=new User();
user1.setNo("101");
user1.setUsername("wei");
user1.setSex("man");

user2.setNo("102");
user2.setUsername("xiang");
user2.setSex("man");

user3.setNo("103");
user3.setUsername("yang");
user3.setSex("women");

list.add(user1);
list.add(user2);
list.add(user3);

PrintWriter out=response.getWriter();

response.setContentType("text/xml");
response.setCharacterEncoding("GB2312");

response.setHeader("Cache-Control", "no-cache");

out.println("<?xml version='1.0' encoding='gb2312'?>");
out.println("<response>");

for(int i=0;i<list.size();i++){

if(list.get(i).getNo().equalsIgnoreCase(userno)){
out.print("<username>"+list.get(i).getUsername()+"</username>");
out.print("<sex>"+list.get(i).getSex()+"</sex>");
}
}
out.println("</response>");
out.close();

}
}

文件二: User.java

package ajax;

public class User {
private String no;
private String username;
private String sex;
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}

}

文件三: index.jsp

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=GB2312"%>
<%
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>
<base href="<%=basePath%>">
<script type="text/javascript" charset="GB2312">
var xmlHttp;
/**
*创建一个XMLHttpRequest对象
*/
function makeRequest(){
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
/**
*得到一页用户的信息
*/
function createAjax(no){
makeRequest();
var url="GetUser?no="+no;
xmlHttp.open('GET',url,true);
xmlHttp.onreadystatechange=callback;
xmlHttp.setRequestHeader("Content-Type","text/html;charset=UTF-8");
xmlHttp.send(null);
}
/**
*显示一页用户的信息
*/
function callback(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
xmlDom=xmlHttp.responseXML;

document.getElementById('username').value=xmlDom.getElementsByTagName('username')[0].firstChild.data;
document.getElementById('sex').value=xmlDom.getElementsByTagName('sex')[0].firstChild.data;

}else{
alert("xmlHttp status: "+xmlHttp.status);
}
}else{
}
}

</script>
<title>display</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
</head>

<body>
<table cellpadding="0" cellspacing="0" bgcolor="#33CCFF" border="0">
<tr>
<td>
学号
</td>

<td>
<input id=no name=no onblur="createAjax(this.value);" />
</td>
</tr>
<tr>
<td>
姓名
</td>

<td>
<input id=username name=username />
</td>

</tr>
<tr>
<td>
性别
</td>

<td>
<input id=sex name=sex />
</td>

</tr>
</table>
</body>
</html>

文件四:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>GetUser</servlet-name>
<servlet-class>ajax.GetUser</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>GetUser</servlet-name>
<url-pattern>/GetUser</url-pattern>
</servlet-mapping>

</web-app>

以Java的一个集合类 ArrayList 对象存储的几条数据为一个数据库

伪数据库。。。 可以把上面的集合类里面的数据记录当成是从数据库

中取出来的。。。

然后用Ajax 把 list 转换成 xml 文件

然后再用 javascript 解析 xml 文件无刷新动态显示到页面上

祝你早日成功!!!

热心网友 时间:2022-04-21 08:52

局部刷新是ajax异步刷新的一种叫法,异步刷新就是在整个页面没有刷新的情况下,刷新一部分页面,最要用在登陆验证和数据更新方面。


       web开发中我们经常会遇到局部刷新页面的需求,以前我经常使用ajax和iframe实现局部刷新,后来做*的项目,对页面的样式要求比较多,发现使用iframe控制样式什么的很麻烦,所以就采用了新的办法,就是下面我们要说的ajax配合div局部刷新页面,其实很简单,下面我们就看一下这种刷新方式是如何实现的。

jsp页面ajax代码如下:

$("#waitWork").click(function(){
var url = "请求地址";
var data = {type:1};
$.ajax({
type : "get",
async : false,  //同步请求
url : url,
data : data,
timeout:1000,
success:function(dates){
//alert(dates);
$("#mainContent").html(dates);//要刷新的div
},
error: function() {
               // alert("失败,请稍后再试!");
            }
});
});

<div id="mainContent">

注意:后台需要针对div里的信息单独用一个jsp页面,不然就需要自己封装好需要的页面信息返回


参考:http://www.w3school.com.cn/jquery/ajax_ajax.asp

热心网友 时间:2022-04-21 10:27

你试一下这个,最简单的:
<%@ 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>
<base href="<%=basePath%>">

<title>My JSP 'MyJsp.jsp' starting page</title>
<script type="text/javascript">
//创建Ajax对象
function createXMLHttpRequest()
{
if (window.XMLHttpRequest) {//XMLHttpRequest
xmlHttp = new XMLHttpRequest();//Mozilla,Firefox,Safari
}
else
{
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//Internet Explorer

}
}
}
function handleStateChange() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 404) {
alert(xmlHttp.responseText);
}
if(xmlHttp.status==200){
//这里的这个"result"必须是下面的div的id
document.getElementById("result").innerHTML=xmlHttp.responseText;
}
}
}
function fun1(){
//这个是你要提交的那个jsp页面或者servlet
var url="MyJsp.jsp";
createXMLHttpRequest();
xmlHttp.onreadystatechange =handleStateChange;
xmlHttp.open("post", url,true);
xmlHttp.send(null);
}
</script>
</head>

<body>
dfsaf
<input type="submit" onclick="fun1()" value="ok"/><br />
<div id="result"></div>
</body>
</html>

热心网友 时间:2022-04-21 12:18

如果这个数据是从数据库中读取的,那么需要用到AJAX,如果只是随意写的一些内容,那么可以直接使用JavaScript完成

例如:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript">
function showValue() {
document.getElementById("message").innerHTML = "随便显示内容" ;
}
</script>
</HEAD>

<BODY>
<INPUT TYPE="button" onclick="showValue();" value="显示"> <br>
<div id="message"></div>
</BODY>
</HTML>

热心网友 时间:2022-04-21 14:26

如果你只是显示固定的值(文字)的话,那么可以考虑用JavaScript 语言编写代码,用来控制文字的显示与否;

如果是动态的文字加载,那你可以考虑用子框架的形式去操作(iframe ),这样的话,当你点击按钮submit,经过数据处理后,将至显示在你需要显示的地方。

路过~希望可以帮助你~

热心网友 时间:2022-04-21 16:51

<html>
<body>

<script type="text/javascript">

function ajaxFunction()
{
var xmlHttp;

try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{

// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{

try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);

}
</script>

<form name="myForm">
用户: <input type="text" name="username" onkeyup="ajaxFunction();" />
时间: <input type="text" name="time" />
</form>

</body>
</html>

time.asp:
<%
response.expires=-1
response.write(time)
%>

参考资料:http://www.w3school.com.cn/ajax/ajax_browsers.asp

热心网友 时间:2022-04-21 19:32

确实可以用到ajax,但是我没研究过,不好意思。

热心网友 时间:2022-04-21 22:30

如果用户说页面可以刷新的话,可以不用ajax啊

热心网友 时间:2022-04-22 01:45

用ajax可以实现
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦到别人跳楼是不是要长高了? 我小孩四岁,他有五百度的斜弱视请问该怎样 朋友家孩子四岁七个月,检查医生说有弱视,伴有一点轻微斜视,如何治疗... 开机密码忘记了不想恢复出厂设置怎么办呢? 辽宁省十大特产 辽宁有哪些特产值得带 辽宁著名特产排行榜 我升级了快播4.0,但是怎么原来的片子都没了 安装快播提示"抽取,无法写入文件"的解决方法 临床医学学硕和专硕的就业区别 医学学硕和专硕哪一个更好考 宁海金海汇有什么项目 谈谈如何聊天才能和女生产生暧昧的感觉? 新潮能源新闻公告?新潮能源最新情况分析?新潮能源除权除息买进去会分红吗? 和女生聊天一般聊到哪些话题,什么程度,可以暧昧或者约了? 已经买了平安保险社会保险但再买学平险有没有冲突 女孩喜欢和异性暧昧聊天是什么心理? 新潮能源年中报?新潮能源信息?新潮能源是好股票吗? 一个女生和我聊天聊的很暧昧,但是她和另一个男生也聊的很暧昧是什么意思? - 信息提示 跟关系暧昧的女生怎么聊天升级关系 女生和这个女生聊天聊天有暧昧吗?像什么关系 - 信息提示 新潮能源股票走势剖析?新潮能源行业研究分析?新潮能源最新重磅消息是利好吗? 你知道和女生暧昧聊天的小套路吗? 新潮能源多少钱一股现在?新潮能源为啥股价这么低?新潮能源新消息是利空还是利好? 怎样看新潮能源股票前景?新潮能源为啥股价那么低?新潮能源最近消息是利空还是利好? 有视频怎么可以找到位置 西瓜如何播种 青钱茶有降血压的功效吗 老倪青钱柳叶茶都哪些功效?能长期服用吗? 乌鲁木齐有没有惠普笔记本的专卖店啊? 长城WT8852A Windows终端与清华同方云终端VD1000哪个好 慕田峪长城英文简介 山东长城立新置业有限公司怎么样? 行政复议成功后公安能否再次处罚 移动和目摄像头怎么改成免费的 行政复议能否加重处罚 中国移动和目摄像头收费吗?怎么收费?收费标准 被盗,微信朋友都被拉进黑名单了,怎么办? 和目摄像头不缴费能联网吗? 移动和目摄像头收费吗 手机二手平台app哪个靠谱 和目C13摄像头是不是只能用移动的网络,可以用电信联通的宽带吗? 在工作中出现骨折,而之间又没有签订劳动合同,那怎样索赔? 我在工地做事导致骨折:没签合同:我该如何要回补偿:? 西门子电热水器显示E2是什么故障 jsp 页面 CSS 和日期控件的css 冲突怎么解决呢l两个分别都定义了table tr td 二年级学生寒假复习主要内容是哪些 西方感恩节有什么风俗 求一篇关于《我的新年畅想—学校未来更美好》的作文,字数600字左右,急急急急急! 比如在jsp页面,如果文本框输入的值不符合要求,就把提示信息显示在该文本框后面,而不是弹出提示框