< % @ page language= "java" import = "java.util.*" pageEncoding= "UTF-8" % >
< % @ taglib uri= "http://java.sun.com/jsp/jstl/core" prefix= "c" % >
< ! DOCTYPE html>
< html>
< head>
< title> Insert title here< / title>
< script src= "http://code.jquery.com/jquery-latest.min.js" > < / script>
< script type= "text/javascript" >
function searchWord ( obj) {
var word= $( obj) . val ( ) ;
var context= "" ;
$. post (
"${pageContext.request.contextPath}/searchWord" ,
{ "word" : word} ,
function ( data) {
if ( data. length> 0 ) {
for ( var i = 0 ; i < data. length; i++ ) {
context+= "<div style='padding:5px;cursor:pointer' οnmοuseοver='overfn(this)' οnmοuseοut='outfn(this)' οnclick='clickDiv(this)'>" + data[ i] + "</div>" ;
}
$( "#showDiv" ) . html ( context) ;
$( "#showDiv" ) . css ( "display" , "block" ) ;
}
} ,
"json"
) ;
}
function overfn ( obj)
{
$( obj) . css ( "background-color" , "#ccc" ) ;
}
function outfn ( obj)
{
$( obj) . css ( "background-color" , "#fff" ) ;
}
function clickDiv ( obj)
{
$( "#search" ) . val ( $( obj) . html ( ) ) ;
$( "#showDiv" ) . css ( "display" , "none" ) ;
}
< / script>
< script type= "text/javascript" >
function my_click ( obj, myid) {
if ( document. getElementById ( myid) . value == document. getElementById ( myid) . defaultValue) {
document. getElementById ( myid) . value = '' ;
obj. style. color= '#000' ;
}
}
function my_blur ( obj, myid) {
if ( document. getElementById ( myid) . value == '' ) {
document. getElementById ( myid) . value = document. getElementById ( myid) . defaultValue;
obj. style. color= '#999' ;
}
}
function search ( ) {
document. getElementById ( "searchform" ) . submit ( ) ;
}
< / script>
< / head>
< body>
< form class = "navbar-form navbar-right" role= "search" >
< div class = "form-group" style= "position: relative" >
< input id= "search" type= "text" class = "form-control" placeholder= "Search" onkeyup= "searchWord(this)" >
< div id= "showDiv" style= "display:none;position: absolute;z-index:1000; background-color:#fff; width:196px; border:1px solid #ccc" >
< / div>
< / div>
< button type= "submit" class = "btn btn-default" > Submit< / button>
< / form>
< / body>
< / html>
package web;
import java. io. IOException;
import java. sql. SQLException;
import java. util. ArrayList;
import javax. servlet. ServletException;
import javax. servlet. annotation. WebServlet;
import javax. servlet. http. HttpServlet;
import javax. servlet. http. HttpServletRequest;
import javax. servlet. http. HttpServletResponse;
import domain. Product;
import net. sf. json. JSONArray;
import service. ProductService;
@WebServlet ( "/searchWord" )
public class searchWordServlet extends HttpServlet {
private static final long serialVersionUID = 1 L;
public searchWordServlet ( ) {
super ( ) ;
}
protected void doGet ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System. out. println ( "servlet start" ) ;
response. setContentType ( "text/html,charset=utf-8" ) ;
String word= request. getParameter ( "word" ) ;
ProductService service= new ProductService ( ) ;
ArrayList< Object> pList= null;
try {
pList= service. findProductByWord ( word) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
JSONArray fromObject= JSONArray. fromObject ( pList) ;
String string= fromObject. toString ( ) ;
System. out. println ( string) ;
response. getWriter ( ) . write ( string) ;
}
protected void doPost ( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet ( request, response) ;
}
}
public ArrayList< Object> findProductByWord ( String word) throws SQLException {
QueryRunner runner= new QueryRunner ( DateSourceUtils. getDataSource ( ) ) ;
String sql= "select * from products where name like ?limit 0,8 " ;
ArrayList< Object> pArrayList= ( ArrayList< Object> ) runner. query ( sql, new ColumnListHandler < > ( "name" ) , "%" + word+ "%" ) ;
return pArrayList;
}