struts2实现ajax交互

合集下载

struts2+json+jquery实现ajax登录和注册功能

struts2+json+jquery实现ajax登录和注册功能

在上一篇博文中已经学习了如何整合mybatis和spring,实现持久层的CRUD操作、业务层的事务管理和spring的IoC。

现在我们这个demo的基础上,继续整合struts2,并利用json插件和jquery实现ajax,完成后系统将实现登录与注册的简单功能。

浏览器端如何简单、高效地与服务器端进行数据交互是web开发者最为关心的内容。

在客户端构造intput表单数据或者拼凑URL参数名称/参数值,然后在服务器端笨拙地用request.getParameter(“参数名称”)获取参数显然已经过时了,在struts2中,只要在action 里定义了input表单名称/URL参数名称对应的String类型属性,并设置getter和setter 方法,struts2在调用action的时候就可以根据参数值自动帮你设置好action中对应的属性值供你使用,这极大地方便了开发者。

但是json更为强大——它可以根据浏览器端上传的符合格式的数据设置action中对象的值,也就是说,struts2自动封装的数据只有一层,而json是无限层。

json给页面参数的传递带来极大的方便,结合jquery来使用,可以轻易地做到页面局部刷新、页面无跳转进行友好的系统异常提示等,其中后者是我觉得最有必要做到的一点,在action中定义一个message变量,把action方法执行的结果或者系统异常信息放到里面以json的方式返回给客户端,客户端根据这个变量的结果来进行下一步的操作或者提示系统异常信息,非常地好用。

json由javascript中的对象和数组构成,基本形式是{key:value},key为属性名称,value 为属性值,value可以为数字、字符串、数组、对象,value可以为数组和对象是json可以封装无限层数据的关键所在。

至于如何建构和解析json不是本篇博文的详细表述范围,请参考其他资料。

现在就让我们利用struts2作为MVC框架,整合json插件,在浏览器端使用jquery解析和系列化json数据,由此制作一个具有登陆/注册功能的小demo。

JSON实现select联动

JSON实现select联动

下面是在Ecl ipse环境下的AJ AX利用JS ON插件和St rut s2结合实现省市县连动的例子首先,登录h ttp://str uts.ap ach e.o rg/do wnl oad.cg i#S tru ts206站点,下载Stru ts2的最新GA版;登录http://cod e.g oog /p/jso npl ugi n/dow nlo ads/li st下载JS ON插件的JAR包。

在Ecl ipse下新建一个Web项目,命名为str uts2_a jax,把下载的压缩包解压,将里面的lib文件夹下的Str uts2-c ore-2.0.6.j ar、xwo rk-2.0.1.Jar、og nl-2.6.11和JSON插件的J AR包等必需类库(图1-2)复制到/W ebR oot/WE B-I NF/lib目录下。

编辑w eb应用的web.xml文件,配置S tru ts2的核心F ilt er,下面是增加了S tru ts2的核心Fi lter配置的w eb.xml文件的代码:<?xm l v ers ion="1.0" en cod ing="G BK"?><w eb-app ve rsi on="2.4" xml ns="h ttp://jav a.s /xm l/n s/j2ee"xmln s:x si="ht tp://w /2001/XM LSc hem a-i nst anc e"xsi:sch ema Loc ati on="ht tp://j ava.su /xm l/n s/j2eehttp://jav a.s /xm l/n s/j2ee/we b-app_2_4.x sd"><f ilt er><f ilt er-nam e>s tru ts2</f ilt er-na me><f ilt er-cla ss>org.ap ach e.s tru ts2.di spa tch er.Fi lte rDi spa tch er</fil ter-cl ass></fil ter><f ilt er-map pin g><f ilt er-nam e>s tru ts2</f ilt er-na me><u rl-pat ter n>/*</url-pa tte rn></fil ter-ma ppi ng></we b-a pp>经过以上几步,我们可以在一个W EB应用中使用S tru ts2的基本功能了。

jsajax请求的五个步骤

jsajax请求的五个步骤

jsajax请求的五个步骤AJAX(Asynchronous JavaScript and XML)是一种使用JavaScript和XML来进行异步数据交互的技术。

它通过在不重新加载整个页面的情况下,动态地更新部分页面内容,提高用户体验和页面加载速度。

下面将详细介绍AJAX请求的五个步骤。

第一步:创建XMLHttpRequest对象在JavaScript中,可以使用XMLHttpRequest对象来发送AJAX请求。

该对象允许与服务器交互,并从服务器获取数据。

我们可以通过以下代码来创建XMLHttpRequest对象:```var xhr = new XMLHttpRequest(;```第二步:设置请求参数在发送AJAX请求之前,需要设置一些请求参数,例如请求类型、URL、是否异步、请求头、请求体等。

以下是设置请求参数的示例:```xhr.setRequestHeader('Content-Type', 'application/json');```第三步:设置回调函数在接收到服务器响应后,需要执行一些操作,例如更新页面内容、处理返回的数据等。

为此,我们需要设置一个回调函数,用于处理服务器响应。

通常有四个回调函数可用:- onreadystatechange:当请求状态发生变化时触发- onload:当请求成功完成时触发- onprogress:在接收服务器响应期间触发- onerror:在请求发生错误时触发以下是设置回调函数的示例:```xhr.onreadystatechange = functioif (xhr.readyState === 4 && xhr.status === 200)//执行操作}};```第四步:发送请求当所有准备工作都完成后,可以调用send方法来发送AJAX请求。

如果是GET请求,可以将参数放在URL中;如果是POST请求,需要将参数作为send方法的参数传递。

基于MVC模式的Struts框架中Ajax研究与应用

基于MVC模式的Struts框架中Ajax研究与应用

第2 4卷第 8期
基 于 MV C模 式 的 Srt 框 架 中 A 研 究 与应 用 t s u jx a
邓 芳
( 北第二 师 范学 院 计 算机科 学与工程 系 ,武 汉 湖 400 ) 32 5
摘要: 在项 目中选择 一个好 的框架 , 将会提 高项 目的效率和可 重用性。本 文首先介绍 了 M C模 式 , 此基 础上开发 V 在
2 V M C设 计 模 式
间保持数据。
() 3 控制 器 : t t S us中的 C nr l r ot l r主要 是 它 自身 提 供 的 oe
A t neve, A t nev t 核 心 就 是 suscn g x l coS r t而 ci S r e 的 i l o l t t of . m 配 r 2 i
中图分类号 :P 1 T 31
文献标 识码 : A
文章编 号:07—1 8 ( 07 0 0 3 0 10 6 7 20 ) 8— 0 4— 3
1 引 言
来实现 , 可以 自己定义业 务处理 的 B a ,t t en Sr s本身 则提供 了 u

基 于 We b的 MV r w r Cf me ok在 J E a 2 E世 界 中 已 是 空 前 繁
A t neve 来处理 和转 发 的。那 么 , ci Srl 如何 决 定 cl S r t o l A t nev t o e
把用户请 求转发给哪个 A tn对 象呢?这就需要一些描 述用 co i
户请 求路径和 A tn映射关系 的配置信息 了。在 Srt co i t s中, u 这 些 配置映射信 息 都存 在 特定 的 X ML文 件 s u tt r s—cn g x l of . m i 中。在该 配置文件 中, 每个 A t n的映 射信 息都 通过 一个 < co i

基于Struts2和AJAX的网上汽车配件商城的设计与实现

基于Struts2和AJAX的网上汽车配件商城的设计与实现

3 页 面 交 互 和 动 态 展 示 : W 3 D cmet bet 列 化 。 因为对 数 据 库 的操 作共 分 为增 删 改查 四种 ,所 以系统 在 构 . C ou n O jc 建 D O操 作 层 时只 需要 关注 相应方 法 的编 写 , 时注 意这 些方法 A 同 Mo e D M) dl O ; (
WR 的 Jvsr t aaci 文件 ,包 括 egn. 和 ui s p n ies j t. ,之 后就 l j 方 法用 于根 据 对象 的 I 和 对 象类 型获取 实 体对 象信 息 。之后 建 后 导入 D D 可 以在 页面 实现 无 刷 新效 果 了 。本系 统 中 的很 多 页面 效果 ,比如 立 的具体 D O对 象 都继 承 自这个 基类 , A 自动 获取 基础 操 作方 法 , 查 找的 自动补 全 效果 ,就是 D WR 的贡献 。 实现 对汽 车配 件信 息数 据库 的操作 。 最 后通 过对 S us tt r 2配置 文件 sus ml t tx 的编 辑 , r . 来配 置 Aco tn i 中 me o 属 性与 rsl元素 的对 应关 系 , 要采 用通 配符 的方 式 , td h e t u 十 在业 务逻 辑层 , 系统 构建 一个 包含 业务 对象 基本 属性 和方 法 使 页面 更为 丰富 ,系统 更加 灵 活 。 的基 础业 务类 , 车 配件 商城 的每 一个 新建 的业 务对 象都 继承 这 汽 五 、结 束语
cr nnlgig a 都 复制 到 WE — Fl o ro- gn.r n o j BI /b下 ,修 改 w b ml N i e . 文件 x 保 证将 请求 转发 给 D WR 的核心 Srl , eve 同时在 w b rl 目录 下 t e .n 同 x 创建 d r ml w . ,用来 定义 Jv 类 和 Jv sr t 间 的对 应 关系 。然 x aa aaci 之 p

浅谈在Struts中使用Ajax

浅谈在Struts中使用Ajax
</c p > sr t i
<h a /e d>
<oy b d >
< t : r a to = /e it> h ml o m c i n ” r g s’ f ’
用户名 :< t : x rp r = uenme o bu= cek srhs , hmle t o et ” sra ” nlr”hc U e( i”> t p y - t ) < i i= c ekeut> 户 返 回信 息 <dv dv d ”he rsl 用 ” / i>
x l t . n (u ) m H t s dnl; pe 1

Aa 不 需 要 任 何 浏 览 器 插 件 , 只 需 要 用 户 允 许 ) 【 J vS r t 浏览 器上 执行 。 aa ci 在 p Aa jx的用户 体验 在市 场上 是 非常 成功 的 。
3Aa .ix实现 用户 当用 户 输 入 用 户名 以后 , 自动进 行用 户名 唯 一性 验 证 。 果该 用 如 户 名存 在 就提 示用 户重 新输 入 一个 用 户名 。 31 ..新建 采用 Srt 框 架 的 w b项 目 t s u e 首先 在 Mycis e l e中新 建 一 个 w b项 目 . 在 项 目 p e 再
密码 :
<hmlp swod p o ry u e r ne, t :a s r rp t=” s rt l”> e a
< t :u h ml bmi >< s t /
在 M Sl yq 数据库 中新建一名为 Aad j b的数据库 , x 在 A a tb数 据库 中新 建 名为 Uet j d x Sr b的表 . 中的字 段 表
<b d > /o y
< h ml /t >

ssh试题

ssh试题

ssh试题一、选择题(共60分,每题2分,可多选)1.struts 2框架通过struts prepare and execute过滤器拦截用户的请求,该过滤器是C(a)一个特殊的servlet(b)拦截器(C)过滤器(d)转发器2.关于struts2框架,下面哪些说法是正确的?bc(a)struts2框架可以脱离web容器运行;(b)struts2框架的运行环境是web容器;默认配置文件是struts。

3框架xml(b)struts。

xml(c)struts插件。

xml(d)默认为struts。

xml4.struts2框架使用default.properties文件定义运行时的参数,所定义的参数可以在struts.xml文件中覆盖,如果覆盖应使用什么标签?c(a)(b)(c)(d)5.关于action类,以下哪项陈述是正确的?BD(a)要定义action类,必须实现action接口;(b)任何跳转字符串都可以在操作中定义;(c)必须在操作中定义execute方法;(b)在struts中,在XML文件中配置action类;7.关于actionsupport类,下面正确的说法是:bd(a)编写action类必须继承actionsupport类;(b) Actionsupport类,提供访问国际邮件资源文件的方法;(c) Actionsupport 类提供struts 2框架的内置验证器;(d)利用actionsupport类的validate方法可以实施自定义验证;8.规范用户提交数据的合理方案是:(c)d(a)实现JavaScript验证;(b)实现struts 2的内置验证;(c)实现Ajax技术的验证;(d)实施javascript验证和struts2的服务器端验证;9.现有程序控制逻辑。

Java和控件操作。

Java和登录JSP以及reigist JSP页面,在struts中,XML的配置如下:{2}.jsp一则下面正确的论述是:d(a)通过请求登录JSP页面访问注册表;(b)通过请求登录JSP页面访问登录;(c)通过请求注册JSP页面访问登录;(d)访问登录。

基于Struts框架的Ajax技术的应用研究

基于Struts框架的Ajax技术的应用研究
术的应用方法。
【 关键词 】c t sm ;
; b we 应用 ; 异步

0 引 言
传统的 We 应用是通过 向 We 服务 器发送请求来 提交用户 填写 b b 请 撵区 匡 匝 进 域 圆 的表单 ( 一 )该表单 被服务器接受并处理后 , f , 0 再返 回一个新的 网页。 由于每次应用交互都需要向服务器发送请求 . 导致用户界 面的响应很 } , Ⅷ藤 } 援订 { 璧鳇 大程度上取决于服务器的响应时间 . 远远慢于本地应用 。而实际 速度 厂 I漂 l 一厂——— 司 —一 = 广 —— —]鞋 透…一 ……… 上很多情况下前后两个页面 中有很大一部分 内容是不变 的 . 部分 这一 l } 彻 { 生醢 l 增l采 { 蕊 限 { 生馥 内容完全没有必要 每次都经过 提交 、 处理 、 返回 、 刷新 的过程 , 了解 为 决这一问题 . 可以采用 Aa 技术 事实上可以只把页面 中需要变动的 j x 图 2 餐厅前台对 各区域餐 桌状态 的监控 部分用 A 来 处理 . j 向服务器发送并取 回必需 的数据 . 而不变 的内容 则保持不变 . 不再 刷新 . 这样 服务器和浏览 器之间交互 的数据就会 大 在餐厅前 台 , 通过下拉 菜单选择 区域 . 可监控 当前 区域所有餐桌 量减少 . 响应也就更迅速 的状态信息并对其进行修改。餐桌状态数据则采用 了在 S us t t框架上 r 引入 A a 技术来获取和显示 . j x 为了能够更好 的监控餐桌状态的变化 . 1 Aa 作 原 理 jx工 可 以通过定 时器 的设置 。 状态信息跟 随数据库 中状 态数据实时更 让


詹 _ 一鼻



。T 囊 。 一. r
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程目标
了解Struts2中ajax的响应方式(响应text文本、响 应json集合) 掌握Struts2和ajax交互的代码规范 Sturts2响应json的代码规范和配置规范
1 / 16
上一课内容回顾
1, 2, 3,
2 / 16
Ajax交互过程回顾
Ajax的原理,简单来说通过XmlHttpRequest对象来向服 务器发异步请求,从服务器获得数据,然后用 javascript来操作DOM而更新页面。
4 / 16
JavaScript方法举例
var xmlhttp; 参考 function loadXMLDoc(url){ xmlhttp = new XMLHttpRequest(); if(xmlhttp!=null){ xmlhttp.onreadystatechange=state_Change; xmlhttp.open("GET",url,true); xmlhttp.send(null); }else{ alert("Your browser does not support XMLHTTP."); } } function state_Change(){ if (xmlhttp.readyState==4) {// 4 = "loaded" if (xmlhttp.status==200) {// 200 = OK document.getElementById("msg").innerHTML=xmlhttp.responseText; }else{ alert(“Problem retrieving XML data”); JSP页面部分 }}}
Struts2与Ajax交互的步骤
1,action定义一个InputStream属性 2,struts.xml配置 视图配置type="stream" 3,jsp页面,使用js编写ajax方法
7 / 16
课堂演示
使用AJAX与Struts2的action交互
12分钟
8 / 16
XMLHttpRequest对象的属性
public class OrderAction { private Integer id; //传入参数 private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public String execute(){ String msg = "id为"+id+"的订单商品为手机"; inputStream = new ByteArrayInputStream(msg.getBytes()); return "success"; } }
10 / 16
JSP代码
Script 代码参照 JavaScript方法举例
function getOrder(){ $.post("order!getOrder.action","id=1", function(result){ $("#msg").html(result); } ); }
<form> <input type="button" value="获取订单名称" onclick="getOrder()"/> <div id="msg"></div> </form>
9 / 16
配置文件代码
<package name="sxt" extends="struts-default"> <action name="order" class="com.bjsxt.action.OrderAction"> <result type="stream"> <param name="inputName">inputStream</param> <param name="contentCharSet">GBK</param> </result> </action> </package>
5 / 16
JQuery
function readMessage(){ $.post("/sxt/app/order.action","id=1", function(result){ $("#msg").html(result); } ); } function readAjax(){ $.post("/sxt/app/user.action","id=1", function(result){ $("#msg").html(result[0].id+" "+result[0].name+"</br>"+result[1].id+" "+result[1].name); } ); 6 / 16 }
0 (未初始化) 1 (初始化) 4 (完成) 数据接收完毕 2 (发送数据) 3 (数据传送中)
onreadystatechange,事件句柄,每次 readyState 属性改变的时候调 用的事件句柄函数。当 readyState 为 3 时,它也可能调用多次。 responseText从服务器进程返回数据的字符串形式,如果 readyState 小于 3,这个属性就是一个空字符串 responseXML,解析为XML并作为Document对象返回。如果响应体不是 “text/xml”返回null status,从服务器返回的数字代码,比如常见的404(未找到)和200( 已就绪) statusText,用名称而不是数字指定了请求的HTTP的状态代码。也就是 说,当状态为 200 的时候它是 "OK",当状态为 404 的时候它是 "Not Found&#立struts321的项目 建立StudentAction.java 建立student.jsp,使用ajax技术访问StudentAction,得到id=1的学生 信息。
20分钟
12 / 16
采用Json方式--action
public class UserAction { private Integer id; //传入参数 private List list = new ArrayList(); public String execute(){ User zhang = new User(1,"张三","1381"); User li = new User(2,"李四","1386"); list.add(zhang); list.add(li); return "success"; } } }
13 / 16
采用Json方式—struts.xml
//struts.xml <package name="app" extends="json-default" namespace="/app"> <action name="user" class="erAction"> <result type="json"> <!--result类型为JSON--> <param name="root">list</param> <!-- json的从root开始,转换list为json结构字符串--> </result> </action> </package>
XMLHttpRequest是ajax的核心机制,它是在IE5中首先 引入的,是一种支持异步请求的技术。简单的说,也就 是javascript可以及时向服务器提出请求和处理响应, 而不阻塞用户。达到无刷新的效果。
3 / 16
XMLHttpRequest对象的属性
readyState,HTTP请求的状态.当一个XMLHttpRequest初次创建时,这 个属性的值从0开始,直到接收到完整的HTTP响应,这个值增加到4。
14 / 16
课堂演示
使用AJAX与Struts2的action交互,读取JSON
12分钟
15 / 16
16 / 16
相关文档
最新文档