-1
我需要創建一個自動完成的Java Servlet項目。 所以我使用jQuery自動完成插件。 它是在一個jsp文件 'autocomplete.jsp'jQuery自動完成servlet retun值
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script src="js/jquery.autocomplete.js"></script>
<script>
jQuery(function(){
$("#username").autocomplete("/Servlet/AutoComplete");
});
</script>
</head>
<body>
<br><br><center>
Select Username :
<input type="text" id="username" name="username"/>
</font>
</body>
</html>
嵌入並AutoComplete.java是一個Servlet:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try{
String s[]=null;
Class.forName("com.mysql.jdbc.Driver");
Connection con =DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=");
Statement st=con.createStatement();
ResultSet rs = st.executeQuery("SELECT username FROM database.datatable");
List li = new ArrayList();
while(rs.next())
{
li.add(rs.getString(1));
}
String[] str = new String[li.size()];
Iterator it = li.iterator();
int i = 0;
while(it.hasNext())
{
String p = (String)it.next();
str[i] = p;
i++;
}
//jQuery related start
String query = (String)request.getParameter("q");
int cnt=1;
for(int j=0;j<str.length;j++)
{
if(str[j].toUpperCase().startsWith(query.toUpperCase()))
{
System.out.print(str[j]+"\n");
if(cnt>=5)// 5=How many results have to show while we are typing(auto suggestions)
break;
cnt++;
}
}
//jQuery related end
rs.close();
st.close();
con.close();
}
catch(Exception e){
e.printStackTrace();
}
}
所以目前,結果打印在IDE內Tomcat的輸出。 知道這很不錯,但用戶看不到它。 我試圖改變System.out.print(str[j]+"\n");
線進入
return str[j];
但這並沒有幫助我。我想我需要在autocomplete.jsp文件中添加一些內容。但我不知道該怎麼辦。
希望你能幫助我。