2 a1187822886 a1187822886 于 2015.07.08 21:33 提问

怎么用servlet获取oracle数据库信息后传递到jquery的ajax上进行验证
 package com.ibm.ajax.app1.entity;

public class WebUser {

        private String uname;
        public WebUser(String uname){
            this.uname=uname;
        }
        public String getUname() {
            return uname;
        }
        public void setUname(String uname) {
            this.uname = uname;
        }


}

package com.ibm.ajax.app1.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;
import java.util.Vector;

import com.ibm.ajax.app1.entity.WebUser;

public class WebUserDao {


    public List<WebUser> queryList() throws Exception{
        String username="gdx";
        String password="wazzh";
        String url="jdbc:oracle:thin:@//localhost:1521/orcl";
        String driver="oracle.jdbc.driver.OracleDriver";
        List<WebUser> lists=new Vector<WebUser>();
        Class.forName(driver);
        Connection conn=DriverManager.getConnection(url, username, password);
        Statement stmt =conn.createStatement();
        ResultSet rs=stmt.executeQuery("select UNAME from webUser");
        while(rs.next()){
            WebUser webuser=new WebUser(rs.getString("UNAME"));
            lists.add(webuser);
        }
        return lists;
    }
}



package com.ibm.ajax.app1.service.impl;

import java.util.List;

import com.ibm.ajax.app1.dao.WebUserDao;
import com.ibm.ajax.app1.entity.WebUser;
import com.ibm.ajax.app1.service.IWebUserService;

public class WebUserServiceImpl implements IWebUserService {
    private WebUserDao webuserdao= new WebUserDao();
    @Override
    public List<WebUser> getWebUserList() throws Exception {
        List<WebUser> lists= webuserdao.queryList();
        return lists;
    }

}


package com.ibm.ajax.app1.service;

import java.util.List;

import com.ibm.ajax.app1.entity.WebUser;

public interface IWebUserService {
    //获取我建立的实体对象WebUser的list表
    public List<WebUser> getWebUserList() throws Exception;
}




package com.ibm.ajax.app1.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ibm.ajax.app1.entity.WebUser;
import com.ibm.ajax.app1.service.IWebUserService;
import com.ibm.ajax.app1.service.impl.WebUserServiceImpl;

/**
 * Servlet implementation class ValiateUserNameServlet
 */
public class ValiateUserNameServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private IWebUserService webuserservice;
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        webuserservice = new WebUserServiceImpl();
        try{
            List<WebUser> userNames=webuserservice.getWebUserList();
            System.out.println(userNames);
            //这之上的是写的从数据库调取的语句
            String userName=request.getParameter("userName");
            String result=null;

            if(userNames.contains(userName) ){
                result="<font color='red'>该用户已存在</font>";
            }
            else{
                result="<font color='green'>该用户不存在</font>";
            }
            System.out.println("sdf");
            response.setContentType("text/html ; charset=UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.getWriter().print(result);
        }
        catch(Exception ex){
            System.out.println(ex);
        }


    }

}



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/scripts/jquery-1.7.2.js "></script>
<script type="text/javascript">
$(function(){
    $(":input[name='username']").change(function(){

        var val=$(this).val();
        val=$.trim(val);
        if(val!=" "){
            var url="${pageContext.request.contextPath }/valiateUserName";
            var args={"userName":val,"time":new Date()};
        $.post(url,args,function(data){

            $("#message").html(data);

        });
        }
    });


})
</script>
</head>
<body>
    <form action="" method="post">
     UserName:<input type="text" name="username" />

     <div id="message"></div>

    <input type="submit" value="Submit" />

    </form>
</body>
</html>

2个回答

caozhy
caozhy   Ds   Rxr 2015.07.08 22:42

你的代码和你描述的不同,是你的客户端js通过ajax去验证你的用户名是否存在,而你的服务器端调用oracle数据库返回结果。
你应该一步一步调试,先调试你的服务器,看看它查询数据库是否正确。
然后调试你的ajax,请求的url,得到的数据、返回的结果是否正确。

a1187822886
a1187822886 前台的ajax是没问题的 主要是servlet或者是dao层出问题了,可是怎么都调不出来
2 年多之前 回复
a1187822886
a1187822886 前台的ajax是没问题的 主要是servlet或者是dao层出问题了,可是怎么都调不出来
2 年多之前 回复
yuke198907
yuke198907   2015.07.09 08:29

正常的流程应该是这样的:用户输入用户名后,执行js的ajax方法,传递参数到servlet,然后servlet根据参数查询数据库并返回数据库查询结果给servlet,
servlet再返回结果给ajax回调函数,ajax回调函数根据不同的结果显示不同的内容。
根据步骤一步一步调试吧

a1187822886
a1187822886 谢谢
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片