使用AJAX开发简单在线小词典

开发环境以及资源:eclipse+tomcat6.0+JDK5+dom4j+xml

首先将写好的简单词典文件words-xml,放入已经建好工程的web-inf目录下

words.xml内容为:

<?xml version="1.0" encoding="GBK"?>
<words>
 <word>
  <en>hello</en>
  <cn>你好</cn>
 </word>
 <word>
  <en>test</en>
  <cn>n. 测试,试验</cn>
  <cn>v. 测试,试验,接受测验</cn>
 </word>
</words>

在webroot目录下新建一个查询词典的html页面:searchwords.html

<script type="text/javascript">
 var xmlHttp;
 var searchWord="";
   function createXMLHttpRequest(){
    if(window.ActiveXObject){
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest){
     xmlHttp = new XMLHttpRequest();
    }
   }
   function doSearch(){
    createXMLHttpRequest();
    searchWord = document.getElementById("userword").value;  
    
    xmlHttp.open("GET","/WordsXML/parsewords?word="+searchWord,true);
    xmlHttp.onreadystatechange = ResultCheck;
    xmlHttp.send(null);  
   }
   function ResultCheck(){
      // alert(xmlHttp.status);
    if(xmlHttp.readyState ==4){
     if(xmlHttp.status ==200){
     
      document.getElementById("searchResult").innerHTML= xmlHttp.responseText;
     }
    }  
   }
 </script> 
  Input Word:
  <input type="text" id="userword" size=30>
  <input type="button" value="Search" οnclick="doSearch()">
  <hr>
  <div id="searchResult">
  </div>

然后在src目录下写一个servlet:名称为ParseWordsServlet.java

(省略导入的包.)

public class ParseWordsServlet extends HttpServlet {
 @Override
 protected void doGet(HttpServletRequest request,
   HttpServletResponse response) throws ServletException, IOException {
  String word = request.getParameter("word");
  Document doc = null;
  SAXReader read = new SAXReader();
  try {
   String url = getServletContext().getRealPath("/")+"WEB-INF//words.xml";
   System.out.print(url);
   doc = read.read(url);
  } catch (DocumentException e) {
   e.printStackTrace();
  }
  String output = "";
  Element root = doc.getRootElement();
  for (Iterator iter = root.elementIterator("word"); iter.hasNext();) {
   Element e = (Element) iter.next();
   String eValue = e.element("en").getText();
   if (eValue.equals(word)) {
    for (Iterator iter2 = e.elementIterator("cn"); iter2.hasNext();) {
     Element cnE = (Element) iter2.next();
     output += cnE.getText() + "<br>";

    }

   }

  }
  if(output.equals("")){
   output="not find it!!";
  }
  response.setContentType("text/xml");
  response.setCharacterEncoding("UTF-8");
  PrintWriter out = response.getWriter();
  out.print(output);
  out.close();
 }
}

配置web-inf目录下的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <servlet>
  <servlet-name>ParseWords</servlet-name>
  <servlet-class>
   com.runwit.words.ParseWordsServlet
  </servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>ParseWords</servlet-name>
  <url-pattern>/parsewords</url-pattern>
 </servlet-mapping>
</web-app>

启动tomcat6.0,打开目标网页,测试.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值