Ajax 模糊查询的简单实现[通俗易懂]

Ajax 模糊查询的简单实现[通俗易懂]类似于百度的搜索引擎模糊查询功能,不过百度的模糊查询功能更强大,这里简单实现下.要实现模糊查询,首先要做的就是把SQL写好。话不多少,直接贴代码了!JSP页面:<%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":

大家好,又见面了,我是你们的朋友全栈君。

类似于百度的搜索引擎模糊查询功能,不过百度的模糊查询功能更强大,这里简单实现下.

要实现模糊查询,首先要做的就是把SQL写好。话不多少,直接贴代码了!

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>My JSP 'search.jsp' starting page</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">  
    <script type="text/javascript" src="prototype.js"></script>
    
    <style type="text/css">
       body{font:11px arial;}
       #suggest{
                position:absolute;
                background-color:#FFFFFF;
                text-align: :left;
                border: 1px solid #000000;
                display: none;
       }
    </style>
	<script type="text/javascript">
	    function searchSuggest(){
	    	var url="Search";
	    	var txtSearch=$F("txtSearch");
	    	var pars='txtSearch='+txtSearch;
	    	var searchAjax=new Ajax.Request(
	    	      url,
	    	      {
	    	    	 method:'get',  //get方式提交
	    	    	 parameters:pars, //提交参数
	    	    	 onComplete:processRequest
	    	      }
	    	);
	    }
	    function processRequest(req){
	    	var sobj=$("suggest");
	    	sobj.innerHTML="";
	    	var str=req.responseText.split("-");
	    	var suggest="";
	    	if(str.length>0&&str[0].length>0){
                for(i=0;i<str.length;i++){
                	suggest+="<div>"+str[i]+"</div>";
                }
                sobj.innerHTML=suggest;
                $("suggest").style.display="block";
	    	}else{
	    		$("suggest").style.display="none";
	    	}
	    }
	</script>
  </head>
  <body>
       <h3>Ajax自动搜索提示</h3>
       <div style="width:500px">
          <form action="" id="formSearch">
             <input type="text" id="txtSearch" name="txtSearch"  οnkeyup="searchSuggest()"autocomplete="off"/>
             <input type="submit" id="cmdSerach" name="cmdSearch" value="搜索"/><br/>
             <div id="suggest" style="width:200px"></div>
          </form>
       </div>
  </body>
</html>

Sevlet类:

package servlet.ajax;

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 Search extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

          request.setCharacterEncoding("UTF-8");
          response.setCharacterEncoding("UTF-8");
          String req=request.getParameter("txtSearch");
          PrintWriter out = response.getWriter();
          SearchDao sd=new SearchDao();
          sd.getText(req);
          StringBuffer sb=sd.getText(req);
          out.print(sb.toString());
          out.flush();
	}
}

 

进行连接数据库,模糊查询的JAVA类:

package servlet.ajax;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class SearchDao {
	
	public StringBuffer  getText(String req){
		//首先定义下连接数据的URL、用户名、密码
		String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
		String user="scott";
		String password="yulei123";
		String sql="select ename from emp a where a.ename like ?";
		if(req.trim().length()==0){
	      sql=sql+" and 1<>1";
		}
		List strList=new ArrayList();
		 try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			Connection con=DriverManager.getConnection(url,user,password);
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1,"%"+req.toUpperCase().trim()+"%");
			ResultSet rs=pre.executeQuery();
			while(rs.next()){
				String ename=rs.getString("ename");
				strList.add(ename);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		StringBuffer sb=new StringBuffer();
		int size=strList.size();
		for(int i=0;i<size;i++){
			sb.append((String)strList.get(i)+"-");
		}
		return sb;
	}
}

代码写好后,就可以在文本框输入字母后就可以模糊查询出数据了!

Ajax 模糊查询的简单实现[通俗易懂]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139514.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • stimulsoft oracle,报表仪表设计器Stimulsoft的处理数据功能

    stimulsoft oracle,报表仪表设计器Stimulsoft的处理数据功能StimulsoftReports.Net是一个基于.NET框架的报表生成器,能够帮助你创建结构、功能丰富的报表。StimulReport.Net的报表设计器不仅界面友好,而且使用便捷,能够让你轻松创建所有报表;该报表设计器在报表设计过程中以及报表运行的过程中都可以使用。在运行时使用StimulReport.Net的报表设计器不需要支付任何的专利费用。所创建的报表既可以在Windows窗体应用…

    2022年7月13日
    20
  • 视音频数据处理入门:RGB、YUV像素数据处理[通俗易懂]

    视音频数据处理入门:RGB、YUV像素数据处理[通俗易懂]有段时间没有写博客了,这两天写起博客来竟然感觉有些兴奋,仿佛找回了原来的感觉。前一阵子在梳理以前文章的时候,发现自己虽然总结了各种视音频应用程序,却还缺少一个适合无视音频背景人员学习的“最基础”的程序。因此抽时间将以前写过的代码整理成了一个小项目。

    2022年7月16日
    13
  • input属性onpaste和oncontextmenu[通俗易懂]

    input属性onpaste和oncontextmenu[通俗易懂]onpaste=”return

    2022年10月16日
    3
  • 国内期货软件开发_正规期货外盘平台

    国内期货软件开发_正规期货外盘平台期货软件搭建-期货软件开发-期货平台搭建,要想做期货软件开发定制,网站的安全性和稳定性非常重要,要搭建一款安全有保障的期货软件,找专业的金融软件搭建公司是必不可少的,那么期货软件开发,期货平台搭建的流程特点有哪些呢?  1.要搭建好用的软件,软件的部署成本和软件的易用性要好一款成熟稳重的期货软件,要经得起时间的推敲,很多公司通过购买软件给到用户,其实他们满足不了二次开发的需求,导致软件更新和后期维护上面根本维护不了。2.要搭建期货平台,价格一定要合理,不要贪图小便宜好的期货平台搭建很多人贪图小便宜,

    2025年10月20日
    4
  • mvc的各个部分都有哪些技术实现_计算机植入木马程序

    mvc的各个部分都有哪些技术实现_计算机植入木马程序MVC三个基本部分:模型(Model)、视图(View)和控制器(Controller)Model:负责业务对象与数据库的映射(ORM)View:负责与用户的交互Controller:接受用户的输入调用模型和视图完成用户的请求MVTDjango框架的MTV设计模式借鉴了MVC框架的思想,三部分为:Model、Template和ViewModel(模型):负责业务对象与数据库的对象(…

    2025年6月12日
    5
  • jsp网页在浏览器中不显示图片_eclipse环境下配置tomcat中jsp项目的虚拟路径[通俗易懂]

    遇到的问题是这样的,在jsp网页中嵌入了本地的图片,由于会用到上传到服务器的图片,所以没有放到项目里面,而是把所有图片单独放到一个文件夹里,然后打算使用绝对路径把要显示的图片显示出来,比如是放在了E盘的uploadPhotos文件夹里,但是在使用绝对路径显示时,代码如下:在eclipse中的内置浏览器里面是可以显示的,但是到其他浏览器都不显示,后来看到这篇文章http://bbs.csdn.net

    2022年3月11日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号