- 浏览: 116397 次
- 性别:
- 来自: 南京
最新评论
-
zhchyun2008:
鱼崽崽 写道大家可以看看这个,里面有真正的实例:http:// ...
springmvc+MyBatis简单CRUD -
鱼崽崽:
大家可以看看这个,里面有真正的实例:http://43.249 ...
springmvc+MyBatis简单CRUD -
w-mamba:
适合初学者学习,蛮好…
ajax+jquery+json分页demo -
aa00aa00:
我笑了............................ ...
springmvc+MyBatis简单CRUD -
u010100704:
大哥。能不能加个项目结构图。再加个运行结果图,你这样写我都不知 ...
springmvc+MyBatis简单CRUD
下载地址:http://download.csdn.net/download/honghu549599aaa/4479865
Autocomplete:
/** * @author :LYL *@date:2011-4-21,下午11:15:29 */ package com.lyl.service; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.net.URLDecoder; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Text; import org.xml.sax.SAXException; public class Autocomplete extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/xml"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; String userword=URLDecoder.decode(request.getParameter("wordtext"),"utf-8"); String datas=getXml(userword,basePath); out.println(datas); out.flush(); out.close(); } /** * 获得匹配的字母,返回List类型 * @return */ private static List<String> getResultList(String userword,String path){ DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); List<String> resultlist=new ArrayList<String>(); try { DocumentBuilder db=dbf.newDocumentBuilder(); Document document=db.parse(path+"/Words.xml"); NodeList words=document.getElementsByTagName("word"); int length=words.getLength(); for(int i=0;i<length;i++){ Node node=words.item(i); //获得字母 String result=node.getFirstChild().getNodeValue(); //这边进行一些逻辑处理,字符串的匹配,(后续工作) if(result.contains(userword)){ resultlist.add(result); } } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return resultlist; } /** * 返回结果的XML字符串 * @return */ private static String getXml(String userword,String path){ List<String> list=getResultList(userword,path); Iterator<String> iterator=list.iterator(); DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=null; Document document=null; try { db=dbf.newDocumentBuilder(); document=db.newDocument(); //创建根节点 Element root=document.createElement("words"); //根节点添加到dom树上 document.appendChild(root); while(iterator.hasNext()){ String content=iterator.next(); //创建文本节点 Text word=document.createTextNode(content); //创建word节点 Element child=document.createElement("word"); child.appendChild(word); root.appendChild(child); } } catch (ParserConfigurationException e) { e.printStackTrace(); } return doc2Xml(document); } private static String doc2Xml(Document document){ //创建一个DOM转换器 TransformerFactory transformerFactory = TransformerFactory.newInstance(); ByteArrayOutputStream outputStream=null; try { Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING,"GB2312"); transformer.setOutputProperty(OutputKeys.INDENT,"yes"); outputStream = new ByteArrayOutputStream(); transformer.transform(new DOMSource(document), new StreamResult(outputStream)); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } return outputStream.toString(); } }
src/word.xml
<?xml version="1.0" encoding="UTF-8"?> <words> <word>abd</word> <word>abandon</word> <word>ability</word> <word>append</word> <word>attention</word> <word>administrator</word> <word>你好</word> </words>
============
css/styles.css
@CHARSET "UTF-8"; * { font-size: 18px; } #content { width: 300px; height: 30px; padding: 0px auto; } #button { width: 100px; height: 30px; } .pro { cursor: default; } #auto { background-color: white; }
js/autopromot.js
//高亮索引 var highlightindex=-1; //设置文本框的内容 function setContent(con,index){ var context=con.eq(index).text(); $("#content").val(context); } //设置背景颜色 function setBkColor(con,index,color){ con.eq(index).css("background-color",color); } $(document).ready( function(){ //获得输入框节点 var inputItem=$("#content"); var inputOffset=inputItem.offset(); var autonode=$("#auto"); //设置提示框隐藏 autonode.hide().css("border","1px black solid").css("position","absolute") .css("top",inputOffset.top+inputItem.height()+5+"px") .css("left",inputOffset.left+"px").width(inputItem.width()+"px"); //当键盘抬起时触发事件执行访问服务器业务 $("#content").keyup( function(event){ var myevent=event||window.event; var mykeyCode=myevent.keyCode; //字母,退格,删除,空格 if(mykeyCode>=65&&mykeyCode<=90||mykeyCode==8||mykeyCode==46||mykeyCode==32){ //清除上一次的内容 autonode.html(" "); //获得文本框内容 var word=$("#content").val(); var timeDelay; if(word!=""){ //取消上次提交 window.clearTimeout(timeDelay); //延迟提交,这边设置的为400ms timeDelay=window.setTimeout( //将文本框的内容发到服务器 $.post("Autocomplete",{wordtext:encodeURI(word)}, function(data){ //将返回数据转换为JQuery对象 var jqObj=$(data); //找到所有的word节点 var wordNodes=jqObj.find("word"); wordNodes.each( function(i){ //获得返回的单词内容 var wordNode=$(this); var newNode=$("<div>").html(wordNode.text()).attr("id",i).addClass("pro"); //将返回内容附加到页面 newNode.appendTo(autonode); //处理鼠标事件 var con=$("#auto").children("div"); //鼠标经过 newNode.mouseover( function(){ if(highlightindex!=-1){ setBkColor(con,highlightindex,"white"); } highlightindex=$(this).attr("id"); $(this).css("background-color","#ADD8E6"); setContent(con,highlightindex); } ); //鼠标离开 newNode.mouseout( function(){ $(this).css("background-color","white"); } ); //鼠标点击 newNode.click( function(){ setContent(con,highlightindex); highlightindex=-1; autonode.hide(); } ); } ); //each //当返回的数据长度大于0才显示 if(wordNodes.length>0){ autonode.show(); }else{ autonode.hide(); } } ,"xml") //post ,400); //settimeout }else{ autonode.hide(); highlightindex=-1; } }else{ //获得返回框中的值 var rvalue=$("#auto").children("div"); //上下键 if(mykeyCode==38||mykeyCode==40){ //向上 if(mykeyCode==38){ if(highlightindex!=-1){ setBkColor(rvalue,highlightindex,"white"); highlightindex--; } if(highlightindex==-1){ setBkColor(rvalue,highlightindex,"white"); highlightindex=rvalue.length-1; } setBkColor(rvalue,highlightindex,"#ADD8E6"); setContent(rvalue,highlightindex); } //向下 if(mykeyCode==40){ if(highlightindex!=rvalue.length){ setBkColor(rvalue,highlightindex,"white"); highlightindex++; } if(highlightindex==rvalue.length){ setBkColor(rvalue,highlightindex,"white"); highlightindex=0; } setBkColor(rvalue,highlightindex,"#ADD8E6"); setContent(rvalue,highlightindex); } } //回车键 if(mykeyCode==13){ if(highlightindex!=-1){ setContent(rvalue,highlightindex); highlightindex=-1; autonode.hide(); }else{ alert($("#content").val()); } } } } );//键盘抬起 //当文本框失去焦点时的做法 inputItem.focusout( function(){ //隐藏提示框 autonode.hide(); } ); } );//reday
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% 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> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="<%=basePath%>css/styles.css"> <script type="text/javascript" language="javascript" charset="gb2312" src="<%=basePath%>js/jquery.js"> </script> <script type="text/javascript" language="javascript" charset="gb2312" src="<%=basePath%>js/autopromot.js"> </script> </head> <body> 自动提示: <!-- autocomplete防止一些浏览器的自动提示完成功能 --> <input type="text" name="content" id="content" autocomplete="off" /> <input type="button" id="button" name="button" value="提交" onclick="" /> <div id="auto"> </div> <br /> <p> 药家鑫案死者丈夫称坚持死刑并非全为以命抵命 </p> </body> </html>
发表评论
-
spring execution 表达式
2012-08-29 15:18 989Spring AOP 用户可能会经常使用 executio ... -
TOMCAT热部署
2012-08-23 11:05 975tomcat如何设置成热启动,即修改源代码时不需要重启tomc ... -
spring jar详解
2012-08-21 15:12 718spring jar 包详解 spri ... -
The prefix "aop" for element "aop:config" is not bound.
2012-08-21 15:02 2884错误提示:The prefix "aop" ... -
springmvc+MyBatis简单CRUD
2012-08-14 09:38 29691实体类:Student.java package demo.e ... -
MyBatis入门
2012-08-03 17:35 1311MyBatis学习 之 一、MyBatis简介与 ... -
SpringMVC之用注解控制器
2012-05-23 17:05 998在传统的Spring MVC开 ... -
SpringMVC的CRUD
2012-08-02 18:11 5154实体类:Student.java package demo ... -
iText导出PDF经典实现
2012-07-23 15:07 1235转自:http://blog.csdn.net/lenotan ... -
POI导出EXCEL经典实现
2012-07-23 15:01 1115转自:http://blog.csdn.net/lenotan ...
相关推荐
【程序老媛出品,必属精品,亲测校正,质量保证】 资源名:asp+ajax+json医生...源码说明: asp ajax json医生预约系统,此demo详细介绍了ajax,json的实例应用,适合新手学习借鉴 适合人群:新手及有一定经验的开发人员
本项目“ajax+json+ashx实现下拉列表三级联动”旨在利用jQuery、Ajax以及ASHX处理程序来创建这样一个功能。 首先,jQuery是一个强大的JavaScript库,它的易用性和丰富的API使得处理DOM操作、事件绑定、动画效果以及...
这个“easyui+ajax+json+servlet实现用户登录注册简单demo”旨在为初学者提供一个理解这些技术实际应用的平台。 首先,EasyUI是一个基于jQuery的轻量级前端框架,它提供了丰富的UI组件,如表格、表单、对话框等,...
- 前端接收到响应后,Jquery解析Json数据,并根据结果更新页面(如显示操作成功提示或错误信息,或者自动加载新数据)。 此外,项目还包含了数据库备份文件,这可能是为了方便用户快速恢复到初始状态,或者便于其他...
标题 "ajax+json+ashx实现界面漂亮的搜索功能.rar" 描述的是一个使用Ajax技术、JSON数据格式以及ASP.NET中的ASHX(HTTP Handler)来构建的高效、美观的搜索功能。这一实现方式允许用户在不刷新整个页面的情况下,...
导入项目进eclipse,启动...然后访问:http://localhost:8080/yuansheng_ajax_login_demo/login.jsp 1.没有连接数据库,用户密码的数据为自定义的Map 2.使用简单的Servlet跳转 3.可按照Map中的数据 在前端 输入进行验证
**jQuery + JSON + REST WCF DEMO 知识点详解** 在IT行业中,开发Web应用程序时,经常会使用到jQuery、JSON、RESTful API以及WCF(Windows Communication Foundation)等技术。"Jquery+JSON+REST WCF DEMO"是一个...
这个小demo的标题“ajax+springmvc+json”表明它是一个用于展示这三者如何协同工作的实例。下面我们将详细探讨这三个关键概念及其相互间的整合。 首先,Ajax是一种前端技术,它允许网页在不重新加载整个页面的情况...
这个"spring+mybatis框架,json,ajax学习demo代码"文件夹中的内容很可能是为了帮助初学者或者开发者理解如何在实际项目中集成这些技术。下面将详细介绍这些知识点: 1. **Spring MVC**:Spring MVC是Spring框架的一...
【Demo流程】在这个"jquery ajax servlet json简单demo"中,我们可以预期以下流程: 1. 客户端(浏览器)的JavaScript代码使用jQuery的AJAX函数发起请求,请求可能包含一些参数,格式化为JSON。 2. 请求被发送到...
在"Extjs Grid+asp.net+json Demo"中,我们将探讨如何结合ExtJS Grid、ASP.NET以及JSON来实现一个数据展示和交互的示例。 首先,让我们理解每个组成部分的作用: 1. **ExtJS Grid**:这是一个客户端的组件,它使用...
本项目"Java后台服务器Maven+SpringMVC+Ajax+@RequestBody+Json传输"就是一个很好的示例,它展示了如何利用这些技术进行前后端的数据交互。下面我们将详细探讨这些知识点。 首先,`Maven`是Java项目管理工具,它...
Struts2、JSON、JQUERY和AJAX是Web开发中常用的技术栈,它们结合使用...通过学习和理解这个DEMO,开发者可以了解到如何将Struts2、JSON、JQUERY和AJAX结合使用,实现前后端数据交互,这对于提升Web开发技能非常有帮助。
本项目利用Highcharts库、Ajax异步请求以及Json数据格式,实现了动态的曲线图、柱状图和饼图,为数据报表提供了一种直观且吸引人的呈现方式。 Highcharts是一个强大的JavaScript图表库,它支持多种图表类型,如折线...
本示例“fastjson+ajax+sppringmvc前后使用json传值的demo”展示了如何利用这些技术进行高效的数据传输。以下是相关知识点的详细说明: 1. JSON:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
在这个案例中,Java后端可能使用了Servlet或Spring Boot框架来接收前端的AJAX请求,执行SQL查询,从MySQL数据库中获取数据,然后将这些数据以JSON格式返回给前端。 4. **MySQL数据库**: MySQL是一个广泛使用的...
综上所述,"Ajax_Json_jQuery详细Demo"包含了一系列关于这三者如何协同工作的实例,对初学者来说是极好的学习资源。通过这些示例,你可以了解如何使用jQuery简化Ajax调用,以及如何处理JSON数据,从而更好地构建交互...
在本DEMO中,我们将探讨如何结合JSON和jQuery实现AJAX交互。 首先,了解jQuery的AJAX方法。主要有`$.ajax()`, `$.get()`, `$.post()`等。其中,`$.ajax()`是最全面的,可以配置各种选项,如URL、类型(GET或POST)...
标题 "bootstrap+ssm+ajax+返回json数据" 涉及到的是一套常见的Web开发技术栈,包括Bootstrap、SSM(Spring、SpringMVC、MyBatis)框架以及Ajax和JSON数据交换。以下是对这些知识点的详细解释: 1. **Bootstrap**:...
【标题】"YouTube Dynamic AJAX - JSON Search API Demo" 涉及的是利用AJAX(Asynchronous JavaScript and XML)技术和YouTube的JSON(JavaScript Object Notation)搜索API来创建一个动态的视频搜索应用程序。...