三步解决Ajax无刷新页的应用

     写到这里,我感到非常的惭愧,关于AJAX的原理我一点没有搞懂,只会把代码写上,把效果做出来。

   

     我也常常问自己,计算机的世界这么大,以我现在的情况,是只要做出来就行,还是把一些技术要搞明白呢?

 

     我并没有得到回答。

 

题目:

       输入一个英文单词,点“词典搜索”按钮,输出对应的中文解释;

    如果没有对应的中文解释,提示“不存在该词条的解释”;

    如果用户没有输入英文单词就点“词典搜索”按钮,提示“词条不能为空”。

 

 

第一步:完成servlet的后台开发    (自定义修改的地方,我们根据实现情况修改) 

 

package com;

 

import java.io.IOException;

import java.io.PrintWriter;

import java.util.HashMap;

import java.util.Map;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

 

public class DictSearchServlet extends HttpServlet {

 

    private static final long serialVersionUID = 606930490763501138L;

   

    private Map dictMap = new HashMap();

   

    public void init(){

       dictMap.put("beida jade bird","北大青鸟");

       dictMap.put("accp","阿博泰克认证的计算机专家");

       dictMap.put("ajax","一种创建交互式网页的技术");

    }

   

    public void doGet(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       //获得并处理表单数据 (自定义修改)

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

       if (null!=key){

           key = key.toLowerCase();

       }

       String result = (String)dictMap.get(key);

             

       response.setCharacterEncoding("GBK");

       response.setContentType("");

       //实现的关键

       PrintWriter out = response.getWriter();

       // 没有查到结果

       if (null==result){

           out.print("不存在该词条的解释");

       }else{

           out.print(result);

       }

       out.flush();

       out.close();

    }

 

    public void doPost(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       this.doGet(request, response);

    }

 

}

 

 

第二步 :前台的开发

 

<%@ page language="java" pageEncoding="GBK"%>

<%

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

    <title>青鸟在线词典</title>

    <script>

    function createXmlHttpRequest(){

       if(window.ActiveXObject){//如果是IE浏览器

           return new ActiveXObject("Microsoft.XMLHTTP");

       }else if(window.XMLHttpRequest){//IE浏览器

           return new XMLHttpRequest();

       }

    }   

    var xmlHttpRequest;

    function doSearch(){

        //获得表单中的显示信息的层 (可以自行定义)

        var oResult = document.getElementById("divResult");

        oResult.innerText = "搜索中...";

   

       var oKey = document.getElementById("key");

       var key = oKey.value;

       if (!key){

           oResult.innerText = "词条不能为空";

           oKey.focus();

           return ;

       }

       // 请求字符串  ( s为对应映射文件的映射名  编写代码时候 可以自行定义)

       var url = "s?key="+key;

       // 1. 创建XMLHttpRequest组件

       xmlHttpRequest = createXmlHttpRequest();

       // 2. 设置回调函数   (haoLeJiaoWo 下面方法的方法名 自行定义)

       xmlHttpRequest.onreadystatechange = haoLeJiaoWo;

       // 3. 初始化XMLHttpRequest组件

       xmlHttpRequest.open("GET",url,true);

       // 4. 发送请求

       xmlHttpRequest.send(null);

    }

    function haoLeJiaoWo(){

           if(  xmlHttpRequest.readyState == 4    

                &&xmlHttpRequest.status == 200){

                   var result = xmlHttpRequest.responseText;   //resultservlet返回的结果

                   var oResult = document.getElementById("divResult");

                   oResult.innerText = result;

           }

    }

    </script>

  </head>

  <body>

    <input id="key" />

    <button onclick="javascript:doSearch();">词典搜索</button>

    <div id="divResult"></div>

  </body>

</html>

 

第三步: 完成配置信息

  <servlet>

    <description>dict servlet</description>

    <display-name>dict servlet</display-name>

    <servlet-name>DictSearchServlet</servlet-name>

    <servlet-class>com.aptech.jb.dict.DictSearchServlet</servlet-class>

  </servlet>

 

  <servlet-mapping>

    <servlet-name>DictSearchServlet</servlet-name>

    <url-pattern>/s</url-pattern>

  </servlet-mapping>

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值