• Struts1.x中利用Ajax动态更新


    1.web.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app version="2.5"  xmlns="http://java.sun.com/xml/ns/javaee"  

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  

    <display-name />  

    <servlet>    

    <servlet-name>action</servlet-name>    

     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>    

    <init-param>      

     <param-name>config</param-name>      

    <param-value>/WEB-INF/struts-config.xml</param-value>    

     </init-param>    

    <init-param>      

    <param-name>debug</param-name>      

     <param-value>3</param-value>    

    </init-param>    

     <init-param>      

    <param-name>detail</param-name>      

    <param-value>3</param-value>    

    </init-param>    

    <load-on-startup>0</load-on-startup><!-- 服务一启动时就进行实例化 -->  

    </servlet>  

     <servlet-mapping>   

      <servlet-name>action</servlet-name>    

    <url-pattern>*.do</url-pattern>  

     </servlet-mapping>  

     <welcome-file-list>    

     <welcome-file>index.jsp</welcome-file>  

     </welcome-file-list>

    </web-app>

    2.struts-config.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

    <struts-config>  

    <form-beans>  

    <!-- 让Struts知道Form,提供给Action使用 ,name为Form的引用名,type为所对应的Form类的全名-->    

    <form-bean name="messageForm" type="com.hollycrm.form.MessageForm">

    </form-bean>  

     </form-beans>  

    <global-exceptions />  

    <global-forwards />  

     <action-mappings>    

    <action path="/message" type="com.hollycrm.action.MessageAction" name="messgeForm">    

     <forward name="success" path="/index.jsp"></forward>    

    </action>  

    </action-mappings>  

    <message-resources parameter="com.yourcompany.struts.ApplicationResources" />

    </struts-config>

    3.index.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>

    <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

    <% 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%>">   

    <script src="js/create.js" language="javascript">  

    </script>  

     </head>    

    <body>    

    <font size="2"></font>   

      姓名:<input type="text" id="name" onblur="sayHello()"><br/>    

    AJAX返回的值:<span id='hello'></span><br>  

     </body>

    </html>

    4.create.js

    // 创建XMLHttpRequest对象 function createXMLHttpRequest() {  

    // 判断浏览器是否通过JavaScript本地方法支持XMLHttpRequest对象  

    if (window.XMLHttpRequest) {   // Mozilla浏览器   

    // 除IE浏览器外其他浏览器中创建XMLHttpRequest对象的方法   

    XMLHttpReq = new XMLHttpRequest();  

    } else {   // IE浏览器   

    // 判断浏览器是否支持ActiveX,在IE浏览器中是通过ActiveX组件支持XMLHttpRequest对象   

    if (window.ActiveXObject) {    // 在不同版本的IE浏览器中,对XMLHttpRequest对象的支持方法有些不同    

    // 用以下代码来判断以适应不同版本的IE浏览器    

    try {     

    XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");    

    } catch (e) {     

    try {      

    XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");     

    } catch (e) {     }    }   }  } }

    // 处理服务器响应请求,对服务器返回的信息进行分析处理,并且把分析的结果展示在页面的指定位置

     function handleResponse() {  

    // 判断对象状态,readyState这个属性描述了请求的状态,可以取下面的5个值:0(未初始化),1(正在加载),2(已加载),3(交互中),4(已完成)  

    if (XMLHttpReq.readyState == 4) {   // 信息已经成功返回,开始处理信息   

    // status属性描述了服务器的状态码,可以是200,404等  

     if (XMLHttpReq.status == 200) {   

     var out = "";   

     // responseXML是服务器以XML格式返回的响应。   

     var res = XMLHttpReq.responseXML;    

    var response = res.getElementsByTagName("response")[0].firstChild.nodeValue;   

     document.getElementById("hello").innerHTML = response;

     //   document.getElementsByName("hello").innerHTML=response;   

    }  } }

    // 发送客户端的请求

     function sendRequest(url) {  

    createXMLHttpRequest();  

    // open(string method,string url,boolean asynch,string name,string  password)方法用于建立对服务器的调用

     // 这个方法有5个参数,前两个参数是必须的,其中method可以是GET或者POST,url是指所要访问的服务器资源的位置,aysnch是指异步访问服务器还是同步访问,默认是异步访问,异步访问正是Ajax的优势所在。使用最后两个参数可以使用指定的用户名和密码访问服务器资源。

     XMLHttpReq.open("GET", url, true);  // 指定响应函数

     // onreadystatechange属性,每个状态的改变都会调用这个事件处理器,使用这个属性可以监听状态的变化,并提供对应的处理方法  

    XMLHttpReq.onreadystatechange = handleResponse;  

    // 发送请求,send(content)方法向服务器发送请求,这个方法中的参数会作为请求中的内容发送到服务器  

    XMLHttpReq.send(null);

    }

    // 开始调用Ajax的功能

    function sayHello() {

     var name = document.getElementById("name").value;

     // alert(name);  

    // 发送请求

     sendRequest("message.do?name="+name);

    }

    5. MessageAction.java

    public class MessageAction extends Action{

     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

    //  MessageForm messageForm=(MessageForm) form;   

     //设置生成文件的类型和编码方式  

     response.setContentType("text/xml;charset=UTF-8");  

     response.setHeader("Cache-Control", "no-cache");   

    PrintWriter returnValue=response.getWriter();   

    String output="";   //处理接收到的参数,生成响应的XML文档

    //  System.out.println(messageForm.getName());

     //  System.out.println(request.getParameter("name"));

    //  if(messageForm.getName().equals("15979089546")){  

     if(request.getParameter("name").equals("15979089546")){   

     output="<response>wensm</response>";   

    }else{    

    output="<response>该用户不存在</response>";   

    }  

     returnValue.print(output);   

    returnValue.close();   

    return mapping.findForward("sucess");  

    }   }

     6.MessageForm.java

    public class MessageForm extends ActionForm{

     private String name=null;

     public String getName() {  

     return name;  

    }

     public void setName(String name) {   

    this.name = name;  

    }   }

  • 相关阅读:
    盘点开发中那些常用的MySQL优化
    刚入职!就遇到上亿(MySQL)大表的优化
    面试技巧|“唇枪舌剑”之十大招式
    rpc是什么?php中流行的rpc框架有哪些?
    使用 memory_limit 限制 PHP 进程的内存使用
    swoole查看子进程与主进程关系
    使用SecureCRT连接AWS的EC2(Linux系统)亲测可行
    substitute Simple JavaScript Template :
    git 简单图表
    jquery 队列
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2420938.html
Copyright © 2020-2023  润新知