最近做毕设发现Ajax提交到Struts后在Action里不需要out.write来构造html或xml了。因为可以就当没有Ajax存在一样去写Action,XMLHttpRequest就能获得Action所转发到的jsp生成的html。说起来很抽象,还是看代码:
login.jsp:
<%@ page language="java" pageEncoding="gbk"%>
<html>
<head>
<title>JSP for LoginForm form</title>
<script type="text/javascript">
function GE(a){return document.getElementById(a);}
function createXMLHttpRequest() {
var xmlhttp;
if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function login(){
var xmlhttp = createXMLHttpRequest();
if(xmlhttp)
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
GE('msg').innerHTML=xmlhttp.responseText;
//alert(xmlhttp.responseText);
}else{
GE('msg').innerHTML=xmlhttp.statusText;
//alert(xmlhttp.statusText);
}
}else{GE('msg').innerHTML="正在提交数据...";}
};
xmlhttp.open('POST','login.do?name='+GE('name').value+'&password='+GE('password').value,true);
xmlhttp.send(null);
}
</script>
</head>
<body>
<h2 align="center">Ajax应用实例: 登录模块</h2>
<form action="login.do" method="post">
帐号 : <input type="text" id="name" name="name"/><br>
密码 : <input type="password" id="password" name="password"/>
<br><input type="button" onclick="login()" value="Ajax提交"><br><br>
<input type="submit" value="普通提交">
</form>
<div id="Layer1">
<div id="msg"></div>
</div>
</body>
</html>
struts-config.xml:
<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.neusoft.struts.action.LoginAction">
<forward name="loginSuccess" path="/loginSuccess.jsp" />
</action>
LoginAction.java:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException {
//LoginForm loginForm = (LoginForm) form;
String name = request.getParameter("name");
request.setAttribute("name", name);
System.out.println(name);
return mapping.findForward("loginSuccess");
}
loginSuccess.jsp
<body>
<h2 align="center" style="font-size: 20px;color: blue;">
登录成功!</h2><br>
getParameter:<%=request.getParameter("name") %>
getAttribute:<%=request.getAttribute("name") %>
</body>
就这样,login.jsp中的xmlhttp.responseText得到的字符串就是loginSuccess.jsp所生成的页面的源代码。
于是在Action里根本不需要构造html或xml或json了,只需把得到数据放到request里,然后转发到jsp(loginSuccess.jsp),在jsp里取出数据,显示;但这个jsp将自身源码以字符串形式传给Ajax页面(login.jsp)。多个jsp,但不需要手工构造 html或xml或json等了。
不知道这是不是个传递数据的捷径呢?
分享到:
- 2008-05-12 21:17
- 浏览 979
- 评论(4)
- 论坛回复 / 浏览 (4 / 3455)
- 查看更多
相关推荐
例如,云计算的发展使得企业可以快速部署服务,节省硬件投资,这就是一种利用风向的"捷径"。同样,利用开源软件和框架可以极大地加速开发进程,减少重复劳动。 哲人的观点则强调了持续努力的重要性。在IT行业中,...
本示例“配置转发捷径将流量引入TE隧道”是针对这一目标的一个具体实践,主要涉及到了流量工程(Traffic Engineering,简称TE)和隧道技术。下面我们将详细探讨这两个关键知识点。 首先,流量工程(TE)是网络管理...
对于初学者,这是一条从理论到实践的捷径;对于有经验的开发者,这些源码提供了深入研究和优化代码的机会。在学习过程中,结合书中理论与代码实践,能够有效提升JSP开发技能,为成为专业的Java Web开发者打下坚实...
### 如何将程序建立成“启动”文件夹的捷径? 在计算机编程中,有时候我们需要让某些应用程序在系统启动时自动运行。这不仅方便用户快速访问常用软件,还能提高工作效率。本文将详细介绍如何通过编程手段将指定的...
标题中的“使用转发捷径把流量引入TE隧道的配置”是指在IP网络中,通过特定的策略将数据流量引导到设定的流量工程(Traffic Engineering,简称TE)隧道中的一种技术。这种技术通常用于优化网络资源的利用,提高网络...
- **JavaScript与DOM操作**:AJAX利用JavaScript来处理服务器返回的数据,并通过DOM(Document Object Model)对网页元素进行实时修改,使得用户操作与反馈更加流畅。 - **XMLHttpRequest对象**:这是AJAX技术的...
5. **转发与重定向**:在完成数据库操作后,JSP框架可能需要将用户重定向到另一个页面(如显示操作结果),这可以通过RequestDispatcher的forward()或sendRedirect()方法实现。 6. **异常处理**:为了保证程序的...
5. **JDBC(Java Database Connectivity)**: JDBC是Java访问数据库的标准API,允许开发者连接到各种类型的数据库,执行SQL语句,实现数据的增删改查。 6. **EJB(Enterprise JavaBeans)**: EJB是Java EE(企业版...
"通过486个例子掌握Web开发捷径"是一本旨在帮助初学者快速上手JavaScript编程的实践教程。本书通过大量的实例,让读者能够在实践中学习,从而更深入地理解JavaScript的核心概念和技术。 JavaScript实例自学手册中的...
Hadoop作为云计算领域的一个核心组件,为大数据处理提供了一种高效、可扩展的解决方案。"开启通向云计算的捷径"这个主题,显然是为了引导读者深入理解Hadoop及其在云计算中的应用。 Hadoop是基于Java的开源框架,由...
Qno侠诺透明桥接模式适合不想更动原有合法IP的PC设定与架构,想快速实现合法IP与虚拟IP均可通过侠诺安全路由访问Internet。企业可依据实际需求来选择适用的模式,让您的企业网络运行更加通畅便利!
通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新,这意味着无需重新加载整个网页即可更新部分网页内容。这种能力使得网页操作更加流畅,用户体验得到显著提升。 ### AJAX:不仅仅是技术,更是理念...
根据给定文件信息,我们可以提炼出以下几个重要的知识点: 1. 编程高手的成长之路:编程高手的成长并...这本书为学习者提供了一条学习捷径,通过理解计算机科学的基础知识和编程思想,快速入门并深入探索编程的精髓。
android 超捷径 源码android 超捷径 源码
7.4 Ajax数据流的访问策略 7.4.1 设计安全的Web层 7.4.2 限制对Web数据的访问 7.5 小结 7.6 资源 第8章 性能 8.1 什么是性能? 8.2 JavaScript的执行速度 8.2.1 测定应用时间的艰难方式 8.2.2 使用Venkman性能分析器 ...
Labview压装机程序源码:经典框架搭配研华数据采集卡,实现高效数据存储与条形码追溯,工控人员必备参考捷径,Labview项目经典压装机程序源码,经典框架,研华数据采集卡,m y s Q L存储数据,条形码追溯,是工控人员...
通过这一视角,新手可以学习到如何系统地理解技术、构建知识体系,以及如何有效利用现有资源和社区。此外,认识到与专家交流的重要性,因为他们的指导和帮助是通往快速掌握技术的捷径。 #### 快车道与专家指导 ...
本书"JavaScript自学手册通过486个例子掌握WEB开发捷径"旨在帮助初学者和有经验的开发者通过实际操作深入理解JavaScript的核心概念。下面我们将详细探讨这本书中可能涵盖的一些关键知识点。 1. **基础语法**: 书中...
《Delphi7 数据库编程学习捷径》是一本专为Delphi初学者和数据库开发者设计的教程,旨在帮助读者快速掌握使用Delphi7进行数据库应用开发的技能。Delphi7作为 Borland 公司的经典集成开发环境(IDE),在当时因其高效...
通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新,这意味着无需重新加载整个网页即可更新部分网页内容,极大地提升了用户体验。 然而,AJAX的意义远不止于此。它代表了一种更加先进、标准化、和谐...