热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

简单的ajax与struts2实例

前言对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是
 前言
        对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是ajax与struts2结合而开发的实例。
       在学习实例前,leo觉得有必要看看,了解下下面这些资料,对ajax学习很重要也很必要.
       什么是Ajax
       读音:e:j^ks 。AJAX即“Asynchronous Javascript and XML”(异步Javascript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术.
       什么是Javascript
       Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。

       什么是XML
       XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
       leo说明
       有了这些资料,现在学习ajax就容易了,如果熟悉上面两种语言,那就更得心应手了;不会这两种语言的朋友可以先去大概的看看,学习下,特别是Javascript,这样在学习ajax时会很轻松.
       ajax实例
       下面来看看实例.
       准备工作:开发软件Myeclipse6.5,tomcat6.0 环境jdk1.6,struts2.0
       OK,一切准备好了,搭建工程,先创建一个test工程,添加。。。具体的步骤就省略了,相信大家这个都会。我们看代码。
       创建一个接受请求处理请求的java类 Java代码
package action;    

import java.io.PrintWriter;    
import java.text.SimpleDateFormat;    
import java.util.Date;    

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

import org.apache.struts2.ServletActionContext;    

import com.opensymphony.xwork2.ActionSupport;    
/**Struts2中AJAX应用演示业务控制器**/  
public class AjaxAction extends ActionSupport {    


   /**处理原始的AJAX请求:读取服务端系统时间**/  
   public String getServerTime(){    
       try {    
           SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");    
           //获取原始的PrintWriter对象,以便输出响应结果,而不用跳转到某个试图    
           HttpServletResponse respOnse= ServletActionContext.getResponse();    
           //设置字符集    
           response.setCharacterEncoding("UTF-8");    
           PrintWriter out = response.getWriter();    

           //直接输入响应的内容    
           out.println(sd.format(new Date()));    
           /**格式化输出时间**/  
           out.flush();    
           out.close();    

       } catch (Exception e) {    
           // TODO: handle exception    
           e.printStackTrace();    
       }    
        return null;//不需要跳转某个视图 因为上面已经有了直接输出的响应结果    

   }    

   /**处理原始的AJAX请求:异步登录**/  
   public String ajaxLogin(){    
       try {    
           String respOnseText="";    
           //读取请求的参数    
           HttpServletRequest request = ServletActionContext.getRequest();    
           String loginname=   request.getParameter("loginname");    
           String loginpwd= request.getParameter("loginpwd");    
           //进行登录验证    
           if(loginname==null||loginname.trim().length()<1){    
               respOnseText="对不起,账号不能为空";    
           }else if(loginpwd==null||loginpwd.trim().length()<1){    
               respOnseText="对不起,密码不能为空";    
           }else{    
               if(loginname.equalsIgnoreCase("www.dukai168.cn")&&loginpwd.equalsIgnoreCase("www.dukai168.cn")){    
                   respOnseText="恭喜你,异步登录成功";    
               }else{    
                   respOnseText="对不起,异步登录失败";    
               }    
           }    

           //获取原始的PrintWriter对象,以便输出响应结果,而不用跳转到某个试图    
           HttpServletResponse respOnse= ServletActionContext.getResponse();    
           //设置字符集    
           response.setContentType("text/plain");//设置输出为文字流  
           response.setCharacterEncoding("UTF-8");    
           PrintWriter out = response.getWriter();    

           //直接输出响应的内容    
           out.println(responseText);    
           out.flush();    
           out.close();    

       } catch (Exception e) {    
           // TODO: handle exception    
           e.printStackTrace();    
       }    
       return null;//不需要跳转某个视图 因为上面已经有了直接输出的响应结果    

   }    


}      
       配置struts.xml Java代码
   

   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
   http://struts. apache.org/dtds/struts-2.0.dtd>    

   
       
           
           /show.jsp    
       
   
   
   
 
       创建前台前请求页面 XML/HTML代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
www.xinlin.info
 

1.服务器端的系统时间:    
 
 
2.登陆账号:    
 
登陆密码:    
 
 
       好了,所有的工作都完成了,发布运行,一切正常,运行的图就不放上来了,此ajax实例已经经过leo亲自测试运行。大家可以直接贴代码进行运行。
       leo总结

       此ajax实例是用的最原始的ajax语言来实现了,现在一般都不这样用,因为这们对浏览器间的兼容性不强,目前使用的都是ajax框架,比如说Jquery,prototype,dwr,Dojo等,更多浏览ajax框架.
本文为leo原创JSP博客独家发布,转载请保留原文地址http://www. dukai168.cn/blog/157.html,否则将追究法律责任,谢谢配合.
推荐阅读
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了包的基础知识,包是一种模块,本质上是一个文件夹,与普通文件夹的区别在于包含一个init文件。包的作用是从文件夹级别组织代码,提高代码的维护性。当代码抽取到模块中后,如果模块较多,结构仍然混乱,可以使用包来组织代码。创建包的方法是右键新建Python包,使用方式与模块一样,使用import来导入包。init文件的使用是将文件夹变成一个模块的方法,通过执行init文件来导入包。一个包中通常包含多个模块。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
author-avatar
,,,,,,,,,,,,,,,
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有