WEB +jsp 如何在 servlet下调用我的程序.

liuhuan851002 2010-04-14 03:50:23
问题描述:
目前我是这样调用的: 从JSP页面提交到SERVLET , 在servlet中调用我的程序.

由于我的程序执行起来要比较长的时间,

所以在这个过程中 提交页面就僵在这里 一直等程序执行完了才跳转到结果页面 .

所以我觉得这样很不好, 很不人性化,

请各位给点建议 看怎么样可以在执行程序的过程中不要停留在提交的页面 .

或者转到另外的提示页面. 等程序完成了 再跳转到结果页面.

请高手们详细描述一下. 谢谢 各位了.
...全文
244 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
loocao 2010-05-04
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 liuhuan851002 的回复:]
引用 20 楼 loocao 的回复:
<html>
<body>
<div></div>
</body>
</html>

这是我的代码. 红色部分为什么不能实现跳转呢////
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getCo……
[/Quote]
document.myform.action="echo.jsp";
只是将form表单的action设为echo.jsp,并不是跳转,
window.location.href="echo.jsp";
这一句才是跳转
liuhuan851002 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 loocao 的回复:]
<html>
<body>
<div></div>
</body>
</html>
[/Quote]
这是我的代码. 红色部分为什么不能实现跳转呢////
<%@ 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 'register.jsp' starting page</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="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

<script type="text/javascript">
//定义异步请求对象
var xmlHttp;

//创建异步请求对象的函数
function createXMLHttpRequest() {
if(window.ActiveXObject) {//如果是微软的浏览器
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if(window.XMLHttpRequest) {//如果是其他类型的浏览器
xmlHttp = new XMLHttpRequest();
}
}

//向服务器发送异步请求的函数
function startRequest() {

document.myform.action="echo.jsp"; //想在提交的过程中提示到echo.jsp --- 提示页面
//window.location.href="echo.jsp";


var userName = document.getElementById("txtName").value; //得到登录名文本框的值
createXMLHttpRequest(); //调用创建异步请求的函数
xmlHttp.onreadystatechange = handleStateChange; //当状态发生改变时,调用处理函数
//以get方式向服务器发送请求
//请求的资源路径为servlet/CheckUserServlet,并且通过URL重写的方式向该Servlet传递了一个参数
//true表示此请求为异步请求,如果为false则表示不为异步请求
xmlHttp.open("get", "servlet/CheckUserServlet?name=" + userName, true);
xmlHttp.send(null); //开始向服务器发送请求
}

//处理服务器返回结果的函数
function handleStateChange() {
if(xmlHttp.readyState == 4) {//表明客户端已经成功地发送请求
if(xmlHttp.status == 200) { //返回200表明服务器成功处理客户端的请求
alert(xmlHttp.responseText); //responseText:获得服务器返回的字符串
}
}
}
</script>

</head>

<body>
<form name="myform" method="get" action="./AjaxServlet.do">
<table>
<tr>
<td>请输入用户名:</td>
<td>
<input id="txtName" type="text" name="txtName" />
</td>
</tr>
<tr>
<td>请输入密码:</td>
<td><input type="password" name="txtPwd" /></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="注册" onclick="startRequest();/>
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>
</body>
</html>
loocao 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 liuhuan851002 的回复:]
引用 20 楼 loocao 的回复:
<html>
<body>
<div></div>
</body>
</html>
当前提交页面用这样个模板,提交页面用js加载到div中,提交的时候,先用js ajax加载一个友好界面到div中,然后ajax提交数据,这样用户看到的就是友好界面了,而且数据也提交了.等到ajax执行回调函数时,再跳转到新的url.

哥们 能不能给个简单的例……
[/Quote]

Ajax啊...大哥,学学吧~
liuhuan851002 2010-04-20
  • 打赏
  • 举报
回复
给自己顶啊 ,

我急用啊,

得到答案我立马结帖..
liuhuan851002 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 cyjayay 的回复:]
使用ajax技术,你在处理后台程序时,当前页面还是可以同时进行其它处理
[/Quote]
能不能给个例子 谢谢了..
united091 2010-04-19
  • 打赏
  • 举报
回复
使用ajax技术,你在处理后台程序时,当前页面还是可以同时进行其它处理
liuhuan851002 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 loocao 的回复:]
<html>
<body>
<div></div>
</body>
</html>
当前提交页面用这样个模板,提交页面用js加载到div中,提交的时候,先用js ajax加载一个友好界面到div中,然后ajax提交数据,这样用户看到的就是友好界面了,而且数据也提交了.等到ajax执行回调函数时,再跳转到新的url.
[/Quote]
哥们 能不能给个简单的例子啊.
我没怎么用ajax , 有些不太懂.
loocao 2010-04-19
  • 打赏
  • 举报
回复
<html>
<body>
<div></div>
</body>
</html>
当前提交页面用这样个模板,提交页面用js加载到div中,提交的时候,先用js ajax加载一个友好界面到div中,然后ajax提交数据,这样用户看到的就是友好界面了,而且数据也提交了.等到ajax执行回调函数时,再跳转到新的url.
liuhuan851002 2010-04-16
  • 打赏
  • 举报
回复
[b]大侠们. 给我点具体的建议啊 ,

我急着要用啊.

谢谢大家了

得到答案我就结帖
[/b]
liuhuan851002 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 renxianzuo 的回复:]
如果需要花很长的时间,那么你应该重新编写你的程序
[/Quote]

不是我的程序需要很长时间, 而是调用的脚本 需要在后台编译代码 . 所以有时需要很长的时间.
liuhuan851002 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lizhey314 的回复:]
等待过过程中有点文字提示例如:系统正在加载中,请稍等、。、、、、
挺不错的
[/Quote]

是啊 用纯粹的JSP 如何实现啊
lizhey314 2010-04-15
  • 打赏
  • 举报
回复
等待过过程中有点文字提示例如:系统正在加载中,请稍等、。、、、、
挺不错的
VirusFu 2010-04-15
  • 打赏
  • 举报
回复
ajax
renxianzuo 2010-04-15
  • 打赏
  • 举报
回复
如果需要花很长的时间,那么你应该重新编写你的程序
anxior35374 2010-04-15
  • 打赏
  • 举报
回复
用第一次AJAX请求让servlet来调用你的后台程序,请求提交完毕之后就跳转到等待页面,
定时用AJAX请求来查询进度,如果后台执行完毕的话,就用提示框或者自动跳转到执行完毕页面来完成就可以了。

定时AJAX查询进度可能会对服务器压力很大,我目前也只会这种方式了,希望后面有人提出更好的。

代码等会编辑。
soli11722984 2010-04-15
  • 打赏
  • 举报
回复
代码直接上W3SCHOOL.COM.CN,里面都有AJAX的代码了
liuhuan851002 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 soli11722984 的回复:]
ajax。。。。。。。
不过这样就成了2个请求了,可显示出来效果比较好看
[/Quote]

给点具体的建议 ,
有代码参考的,
我现在用的只是JSP,
soli11722984 2010-04-15
  • 打赏
  • 举报
回复
ajax。。。。。。。
不过这样就成了2个请求了,可显示出来效果比较好看
qquit2 2010-04-15
  • 打赏
  • 举报
回复
打个酱油小路过我是个初学者多看看别人的帖子当做学习
liuhuan851002 2010-04-15
  • 打赏
  • 举报
回复
各位给点具体的实施建议把.

其实我也明白要在执行时要提示 完成了之后再跳转 但是目前我不知道怎么做.

加载更多回复(7)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧