ajax demo

<html>
  <head>
    <title>Struts2中原始AJAX技术应用测试</title>
  </head>  
  <body>
    <h2>Struts2中原始AJAX技术应用测试</h2>
    <hr>
	<script language="javascript">
		//定义一个变量用于存放XMLHttpRequest对象
		var xmlHttp; 
		
		//该函数用于创建一个XMLHttpRequest对象
		function createXMLHttpRequest() {
			if (window.ActiveXObject) {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			else if (window.XMLHttpRequest) {
				xmlHttp = new XMLHttpRequest();
			}
		}
			
		//这是一个启动AJAX异步通信的方法
		function getServerTime(){
			var now = new Date();
			//创建一个XMLHttpRequest对象
			createXMLHttpRequest();
			//将状态触发器绑定到一个函数
			xmlHttp.onreadystatechange = processServerTime;
			//通过GET方法向指定的URL建立服务器的调用,加个临时参数,以便标识一个全新的请求
			xmlHttp.open("GET", "ajax_getServerTime.action?tmp="+now.getTime());
			//发送请求
			xmlHttp.send(null);
		}
		
		//这是一用来处理状态改变的函数
		function processServerTime(){
			//定义一个变量用于存放从服务器返回的响应结果
			var responseContext;
			if(xmlHttp.readyState == 4) { //如果响应完成
				if(xmlHttp.status == 200) {//如果返回成功
					//取出服务器的响应内容
					responseContext = xmlHttp.responseText;
					document.getElementById("servertime").innerHTML=responseContext;
				}
			}
		}
		
		//这是一个启动AJAX异步通信的方法
		function ajaxLogin(){
			var ln = document.getElementById("loginname").value;
			var lp = document.getElementById("loginpwd").value;
			//创建一个XMLHttpRequest对象
			createXMLHttpRequest();
			//将状态触发器绑定到一个函数
			xmlHttp.onreadystatechange = processAjaxLogin;
			//通过GET方法向指定的URL建立服务器的调用
			xmlHttp.open("GET", "ajax_ajaxLogin.action?loginname="+ln+"&loginpwd="+lp);
			//发送请求
			xmlHttp.send(null);
		}
		
		//这是一用来处理状态改变的函数
		function processAjaxLogin(){
			//定义一个变量用于存放从服务器返回的响应结果
			var responseContext;
			if(xmlHttp.readyState == 4) { //如果响应完成
				if(xmlHttp.status == 200) {//如果返回成功
					//取出服务器的响应内容
					responseContext = xmlHttp.responseText;
					alert(responseContext);
				}
			}
		}		
	</script>
	1、服务端的系统时间:<span id="servertime"></span><input type="button" value="获取服务端时间" οnclick="getServerTime()"/><br/>
	2、登录帐号:<input type="text" id="loginname"/>  登录密码:<input type="password" id="loginpwd"/> <input type="button" value="异步登录" οnclick="ajaxLogin()"/><br/> 
  </body>
</html>

 

以上是 oldajax.html

 

 

 

<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<!-- 设置Web应用的默认编码集为gbk -->
	<constant name="struts.i18n.encoding" value="gbk"/>
	<!-- 设置Web应用的默认Locale为zh_CN -->
	<constant name="struts.locale" value="zh_CN" />
	<!-- 设置Struts2应用的国际化资源文件,多个文件中间可用逗号分隔 -->
	<constant name="struts.custom.i18n.resources" value="messageResource"/>
	<!-- 设置Struts2应用是否处于开发模式,通常在开发调试阶段设为true,正式上线后可设为false -->
	<constant name="struts.devMode" value="true" />
	<!-- 设置Struts2的默认主题为simple -->
	<constant name="struts.ui.theme" value="simple" />

    <package name="test" extends="struts-default">    
		<!-- 定义全局result -->
		<global-results>
			<!-- 定义名为exception的全局result -->
		    <result name="exception">/exception.jsp</result>
		</global-results>

		<!-- 定义全局异常映射 -->
		<global-exception-mappings>
			<!-- 捕捉到Exception异常(所有异常)时跳转到exception所命名的视图上 -->
			<exception-mapping exception="java.lang.Exception" result="exception"/>
		</global-exception-mappings>
		
		<!-- 配置Struts2中AJAX应用演示业务控制器的映射 -->
		<action name="ajax_*" class="com.test.struts.AjaxAction" method="{1}">
			<!-- 配置SUCCESS视图 -->
			<result/>					
		</action>
		<!-- 配置Struts2中登录验证业务控制器LoginAction -->
		<action name="login" class="com.test.struts.LoginAction">
			<!-- 配置INPUT视图 -->
			<result name="input">/login.jsp</result>
			<!-- 配置SUCCESS视图 -->
			<result>/loginSuccess.jsp</result>								
		</action>											
    </package>
    <!-- 定义供异步调用的包 -->
    <package name="ajax" extends="json-default">
		<!-- 配置Struts2中JSON插件应用演示业务控制器的映射 -->
		<action name="json_ajaxServerTime" class="com.test.struts.JsonAjaxAction" method="ajaxServerTime">
			<!-- 配置SUCCESS视图 -->
			<result type="json">
				<!-- 指定需要以JSON对象返回的当前Action属性  -->				
				<param name="includeProperties">serverTime</param>			
			</result>					
		</action>
		<action name="json_ajaxLogin" class="com.test.struts.JsonAjaxAction" method="ajaxLogin">
			<!-- 配置SUCCESS视图 -->
			<result type="json">
				<!-- 指定需要以JSON对象返回的当前Action属性 -->
				<param name="includeProperties">responseText</param> 				
			</result>					
		</action>    
    </package>    
</struts>


以上是 struts.xml

 

package com.test.struts;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.*;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;

/** Struts2中AJAX应用演示业务控制器 */
public class AjaxAction extends ActionSupport{

	/** 处理原始的AJAX请求:读取服务端系统时间 */
	public String getServerTime(){
		try {
			SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
			//取得当前Action的原始PrintWriter对象,以便直接输出响应结果,而不用跳转到某个视图
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setCharacterEncoding("gbk");
			response.setContentType("text/plain");
			PrintWriter out = response.getWriter();
			//直接输出响应内容
			out.println(sd.format(new Date()));
			out.flush();
			out.close();
		} catch (IOException e) {
			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("admin")&&loginpwd.equals("123456")){
					responseText = "恭喜您,异步登录成功!";
				}else{
					responseText = "对不起,异步登录失败!";
				}
			}
			//取得当前Action的原始PrintWriter对象,以便直接输出响应结果,而不用跳转到某个视图
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setCharacterEncoding("gbk");
			response.setContentType("text/plain");
			PrintWriter out = response.getWriter();
			//直接输出响应内容
			out.println(responseText);
			out.flush();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;//不需要跳转到某个视图,因为上面已经有了直接的输出响应结果
	}	

}


以上是 AjaxAction.java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值