这是我自己写的例子,希望对大家有帮助

使用了struts2,jdk1.6

1.实体类书写

public class Student {

       private String toid ;

       private String name ;

       private String sex ;

       public String getToid() {

             return toid ;

      }

       public void setToid(String toid) {

             this.toid = toid;

      }

       public String getName() {

             return name ;

      }

       public void setName(String name) {

             this.name = name;

      }

       public String getSex() {

             return sex ;

      }

       public void setSex(String sex) {

             this.sex = sex;

      }

}

2.我们在首页的jsp中写上几个链接

<html>

  <head >

    <title >ajax-struts测试</title >

  </head >

 

  <body >

    <a href="<%= path%>/login.jsp" >使用javascript原生 api实现ajax ---读取远程文本</a >

    <br />

    <a href="<%= path%>/register.jsp" >使用javascript原生 api实现ajax ---检查注册名是否重复</a >

    <br />

    <a href="<%= path%>/jqueryRegister.jsp" >使用jquery框架实现 ajax---检查注册名是否重复 </a>

    <br />

    <a href="<%= path%>/jqueryJson.jsp" >ajax请求json数据,动态构造网页 </a>

  </body >

</html>

3.struts2的配置文件

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

<!DOCTYPE struts PUBLIC

       "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

       "http://struts.apache.org/dtds/struts-2.3.dtd" >

       <struts>

         <package name="user" extends="struts-default" namespace="/user" >

           <action name="userAction" class="action.UserAction">

            <result name="doLogin" >/login.jsp</ result>

            <result name="loginerr" >/register.jsp</ result>

           </action>

        </package>

       </struts>

4.实现javascript原生Ajax读取文本文档

<html>

  <head >

    <title >ajax读取txt文本</title >

    <script type="text/javascript">

     function getContent(){

         var xmlhttpRequest=new XMLHttpRequest();

           xmlhttpRequest.onreadystatechange= function(){

           if (xmlhttpRequest.readyState==4 && xmlhttpRequest.status==200){

             document.getElementById("content" ).value=xmlhttpRequest.responseText;

           }

          }

          xmlhttpRequest.open( "GET","<%= path%>/txt/ajaxtest.txt ",true);

          xmlhttpRequest.send();

     }

    </script >

  </head >

 

  <body >

      <input type="button" value="ajax获取信息" onclick="getContent()" />

      <br />

      <textarea id="content" rows="5" cols="30"></ textarea>

  </body >

</html>

文本信息为:

hello ajax

你好啊


自己随便写一个文本文档,注意路径不要写错了

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

(1).无法使用缓存文件(更新服务器上的文件或数据库)

(2).向服务器发送大量数据(POST 没有数据量限制)

(3).发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

5.javascript原生Ajax实现账号验证

< html>

  <head >

     <title > 注册</ title >

     <script type= "text/javascript">

     function doRegister(){

        var xmlhttpRequest= new XMLHttpRequest();

            xmlhttpRequest.onreadystatechange= function (){

            if (xmlhttpRequest.readyState==4 && xmlhttpRequest.status==200){

             var responseResult=xmlhttpRequest.responseText;

             if (responseResult=='iserror' ){

               alert( "账号已被使用" );

             } else {

               alert(responseResult);

               var registerForm=document.getElementById( "registerForm");

               registerForm.submit();

             }

            }

         }

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

          xmlhttpRequest.open("GET" ," <%=path %> /user/userAction!checkUsername.action?username= "+username,true);

          xmlhttpRequest.send();

     }

     </script >

  </head >

 

  <body >

    ${requestScope.errormsg}

    <form id= "registerForm" action =" <%= path%> /user/userAction!doLogin.action" method= "post">

      用户名: < input type ="text" name= "username" id= "username" />

      <br />

      密码: < input type ="password" name= "password" id= "password" />

      <br />

       < input type ="button" onclick= "doRegister()" value ="注册" />

    </form >

  </body >

</ html>

新建一个UserAction代码内容为:

public class UserAction {

     public String doLogin() {

             return "doLogin" ;

      }

}

这个类放在这,我们还要添加方法,留待后面使用

6.使用jQuery框架实现Ajax,检验账号

< html>

  <head >

   <title > jqury实现无刷新测试 </ title>

   <script type= "text/javascript" src =" <%= path%> /js/jquery-1.7.1.js" ></script >

   <script type= "text/javascript">

     function doRegister(){

       var username=$("#username" ).val();

        $.ajax({

            type: "POST" ,  //异步请求方式

            data:{ "username" :username},  //传递的数据

            url:' <%= path%> /user/userAction!checkUsername.action ',  //请求路径

            dataType: "text" ,

            success: function (data){

               alert(data);

            },

            error: function (err){alert("错误:" +err);}  //异步请求失败后的回调函数

      });

     }

     </script >

  </head >

 

  <body >

    <form id= "registerForm" action =" <%= path%> /user/userAction!doLogin.action" method= "post">

      用户名: < input type ="text" name= "username" id= "username" />

      <br />

      密码: < input type ="password" name= "password" id= "password" />

      <br />

       < input type ="button" onclick= "doRegister()" value ="注册" />

    </form >

  </body >

</ html>

在上面的UserAction类里面添加代码如下:

public void checkUsername() {

            HttpServletRequest request = ServletActionContext.getRequest();

            HttpServletResponse response = ServletActionContext.getResponse();

            String username = request.getParameter( "username" );

             if (username.equals("admin" )) {

                   try {

                        Writer writer = response.getWriter();

                        writer.write( "iserror" );

                        writer.flush();

                        writer.close();

                  } catch (IOException e) {

                        e.printStackTrace();

                  }

            }

      }

7.Ajax请求json数据,动态构造网页

< html>

  <head >

    <title > jquery ajax 请求json数据动态构造网页 </ title>

    <script type= "text/javascript" src =" <%= path%> /js/jquery-1.7.1.js" ></script >

    <script type= "text/javascript">

     function searchStudent(){

        $.ajax({

            type: "POST" ,  //异步请求方式

            url:' <%= path%> /user/userAction!ajaxList.action ',  //请求路径

            dataType: "json" ,

            success: function (data){

               //alert(data);

               $( "#stuTr" ).nextAll().remove();

               //循环json数据

               for (var i=0;i<data.length;i++){

                 var item=data[i];

                 //alert(item.toid+" : "+item.name);

                 $("#stuTable" ).append( "<tr><td>"+item.toid+ "</td><td>" +item.name+"</td><td>" +item.sex+ "</td></tr>");

               }

            },

            error: function (err){alert("错误:" +err);}  //异步请求失败后的回调函数

      });

     }

    </script >

  </head >

 

  <body >

    <input type= "button" onclick ="searchStudent()" value = "ajax得到所有学生" />

    <table id= "stuTable" border ="1" >

     <tr id= "stuTr" >< td> toid </td >< td> 学生姓名 </td >< td> 性别 </td ></ tr>

     

    </table >

  </body >

</ html>

在上面的UserAction类里面添加代码如下:

/**

       * 给客户端返回 json数据

       */

       public void ajaxList() throws Exception {

             //模拟从数据库中获取数据

            List<Student> list = new ArrayList<Student>();

             for (int i = 0; i < 10; i++) {

                  Student student = new Student();

                  student.setToid(i + "" );

                  student.setName( "ago" + i);

                  student.setSex(i % 2 + "" );

                  list.add(student);

            }

            HttpServletResponse response = ServletActionContext.getResponse();

             //把list解析成 json

            String json = JSON. toJSONString(list);

            System. out .println(json);

            response.setContentType( "application/json;charset=UTF-8" );

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

             //给用户打印 json数据

            response.getWriter().write(json);

            response.flushBuffer();

      }