JSP中使用AJAX示例 分别将结果提交为STRUTS,SERVLET WEBWORK的不同操作方式

               

我原先刚开始学AJAX的时候,忘了从什么地方拉下来的一篇文章,不过,如果没有AJAX基础,最好不看这篇示例,因为你肯定看不懂,因为这个示例页不能够给你立即看到立即实现的效果,你应该先去看一个最简单的示例,怎么样用AJAX去把一个文本文件的内容读回来。然后再回来看这篇文章,这里你可以看到使用AJAX分别把内容提交到STRUTS,SERVLET,WEBWORK,是怎么样操作的。我在看这篇文章以前,都是把一个JSP的处理请求,发给另外一个JSP页面处理,并在那个页面理采用BEAN的方式,虽然我是采用的STRUTS结构,但是却不知道可以直接将内容提交到ACTION,这样就可以减少一道工序了,人笨就是这样。
写这个页面的朋友是谁,我真的忘了,不过,还是非常感谢。示例就自己看吧:

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
ajax
</title>
</head>
<body bgcolor="#ffffff">
<h1>
<input name="username" type="text" maxlength="20" />
<input id="chk-name-btn" type="button" value="检测帐号" οnclick="testName('<%=request.getContextPath()%>')" />
<div id="view_name"></div>
</h1>
</body>
</html>
<script language="javascript">
  if (window.ActiveXObject && !window.XMLHttpRequest) {
      window.XMLHttpRequest=function() {
      return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');
   };
  }//取得XMLHttpRequest对象

function testName(path){

//path是取得系统路径
                var view_name=document.getElementById("view_name");
      var req=new XMLHttpRequest();
      if (req) {
          req.onreadystatechange=function() {
           if (req.readyState==4 && req.status==200) {//判断状态,4是已发送,200已完成
                 if(req.responseText==0){
                 view_name.style.color='green';
                view_name.innerHTML='该用户名可以正常使用';
                 }else if(req.responseText==1){
                view_name.style.color='red';
                   view_name.innerHTML='该用户名已经被使用';
                       }else{
                     view_name.style.color='red';
                     view_name.innerHTML='该用户名含有非法字符!';
                     }
                 }
         }
   req.open('POST', path+'/ajax.jsp');//jsp
                        req.open('POST', path+'/ajax.do');//struts
                        //req.open('POST', path+'/ajax.servlet');//servlet
                        //req.open('POST', path+'/ajax.action');//webwork
                        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                        req.send("");//发送参数如果有参数req.send("username="+user_name);用request取得
      }
}
</script>

这个jsp页面并没有取得用户名,就是演示一下。还有<div>可以换span,具体作用问美工吧。

接受ajax请求的action。

import org.apache.struts.action.*;
import javax.servlet.http.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;

/**
 * <p>Title:AjaxAction </p>
 */

public class AjaxAction extends Action {
  public ActionForward execute(ActionMapping mapping,
                               ActionForm form,
                               HttpServletRequest request,
                               HttpServletResponse response)
      throws Exception {
    PrintWriter out = response.getWriter();
    out.print(1);//ajax取得都是字符的输出。如果数据量大的话,还可以用xml来发送和接受
    return null;
  }
}

struts-config.xml

    <action type="test.whw.upload.AjaxAction" validate="false" scope="request"  path="/ajax"/>
----------------------------

如果是servlet

web.xml

 <servlet>
  <servlet-name>AjaxServlet </servlet-name>
  <servlet-class>servlet.AjaxServlet </servlet-class>
 </servlet>
    <servlet-mapping>
        <servlet-name>AjaxServlet </servlet-name>
        <url-pattern>/AjaxServlet .servlet</url-pattern>
    </servlet-mapping>

AjaxServlet.java

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AjaxServlet extends HttpServlet {
 Logger log = Logger.getLogger(this.getClass());
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException,IOException {
  response.setContentType("text/xml; charset=GBK");
  PrintWriter out = response.getWriter();
    out.print(2);
   }
 }
 //Process the HTTP Post request
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }

 //Process the HTTP Put request
 public void doPut(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
 }

 //Process the HTTP Delete request
 public void doDelete(HttpServletRequest request,
   HttpServletResponse response) throws ServletException, IOException {
 }

 //Clean up resources
 public void destroy() {
 }
}

-------------------------------------

如果是webwork

xwork.xml

<action name="ajax" class="com.whw.upload.action.webwork.AjaxAction" method="ajax"/>

AjaxAction.java

import java.io.PrintWriter;

public class AjexAlbumAction extends ActionSupport implements Action{
  public void ajax() throws IOException {
            PrintWriter pw = ServletActionContext.getResponse().getWriter();
            ServletActionContext.getResponse().setContentType("text/html;charset=GBK");
            pw.print(1);
            pw.close();
  }

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值