我有这个jsp文档(如下)。基本上,当用户输入文本框时,如果数据库中存在用户名/长度为< 5等,我想显示一个错误。JQuery/AJAX代码错误 - 在文本框中键入文本时不显示
我希望通过jQuery/AJAX无需刷新即可同时显示这些错误。我做到了这一点,但似乎没有工作。这里,CheckAvailability和Success是servlet,CheckVailability检查数据库中是否存在。
JSP文件:
$(document).ready(function() {
$('#username').keyup(function() {
var name = $('#username').val();
$.get('CheckAvailability?username='+name,function(responseText){
$('#status').text(responseText);});});
CheckAvailability的Servlet
public class CheckAvailability extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection conn=null;
Statement s=null;
ResultSet rs=null;
PreparedStatement ps;
try {
//make connection
String userid = request.getParameter("username");
String arr;
Class.forName("oracle.jdbc.OracleDriver");
if (userid.equals("")) {
arr = "Error: User name cannot be empty";
} else if(userid.length()<5){
arr="Error: Username cannot be less than 5 characters.";
}
else
{
String table="user1.app_users";
String p = "alpha";//database password
String query = "select userid from " + table + " where userid='" + userid + "'";
String url = "jdbc:oracle:thin:system/" + p + "@localhost:1521:XE";
conn = DriverManager.getConnection(url);
s = conn.createStatement();
ps = conn.prepareStatement(query);
rs = ps.executeQuery();
if (!rs.next()) {
arr="UserID " + userid + " is available.";
} else {
arr= "Error: UserID " + userid + " is already in use.";
}
}
response.setContentType("text/plain");
response.getWriter().write(arr);
}catch (SQLException se) {
out.println("Error ->" + se.getMessage());
} catch(ClassNotFoundException ce)
{
out.println("Error ->" + ce.getMessage());
}finally {
out.close();
}
}
}
但正如我在文本框中键入此不显示任何内容。 servlet在提交时触发。没有发生的事情是文本没有显示出来。代码执行,在我的IDE没有错误。我不能完全运行这个servlet,它会给出错误信息:'HTTP方法GET不被这个URL支持',即当我使用参数运行它时。我在里面输入了字符串用户名=“user12”,并且没有运行。有人可以指出我的错误吗?我是jQuery/AJAX的新手。
+0
你还没有完成'});''准备好''' –
+0
谢谢你指出......但即使纠正后,它不起作用。 –