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层出问题了,可是怎么都调不出来
大约 3 年之前 回复
a1187822886
a1187822886 前台的ajax是没问题的 主要是servlet或者是dao层出问题了,可是怎么都调不出来
大约 3 年之前 回复
yuke198907
yuke198907   2015.07.09 08:29

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

a1187822886
a1187822886 谢谢
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java jquery ajax Servlet jsp页面异步请求验证用户名
直接上代码 $(function() { $("#inputid").blur(function() { //当xxx失去焦点时  var value = $("#inputid").val(); $.ajax({ url : "../AjaxEmailServlet",//要请求的服务器名字 //这是一个对象,表示请求的参数,两个参数。服务器可以通过request.getParame
jquery+jsp+servlet+ajax实现注册功能,ajax校验用户名、验证码等
注册样式很大众化 实现了以下功能: 用户名: jQuery实现:1、失去焦点校验输入是否为空及限制字符数然后显示Label;2、获得焦点后隐藏;3、ajax校验是否该用户名是否已存在于数据库 登录密码:1、失去焦点校验输入内容;2、获得焦点隐藏 确认密码:1、校验输入内容;2、校验确认密码是否等于登录密码 email:1、校验输入符合邮件格式;2、获得焦点隐藏label 图形验证码:1
java servlet使用jquery 的ajax交互 传递json对象
使用jQuery封装好的ajax方法进行ajax交互,节约了很多不必要的代码,也不用进行,浏览器兼容了。 这里使用的是.ajax方法,配置完web.xml 中的servlet之后,后台代码如下: //@ Saa public void doPost(HttpServletRequest request,HttpServletResponse response) throws S
使用JSP Servlet和Ajax实现简单的注册页面的用户名密码验证
大家都知道Ajax并不是一项新的发明技术,它的全称是Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。我们在使用html表单提交页面时,会有一种刷新页面的感觉,这给予用户的体验感十分不好,在这里可以通过js脚本来和后台服务器进行数据传递与交互,服务器查询到页面后,会将数据传送到js里面,并有js相关变量来接收,再在js里将获取到的值赋给html的input对象value值(通常是<span><label><text>等),所以js与后台异步交互可以不
使用 jQuery ajax() 方法异步提交, 验证用户登录
用户登录的验证可以使用 form 表单提交,也可以使用 ajax 技术异步提交。AJAX 即 Asynchronous Javascript And XML(异步 JavaScript 和 XML),是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 AJ
JSP+Servlet+ JQuery AJAX 实现表单添加验证
在写老师布置的酒店管理系统,在添加桌名的地方想添加验证,去网上看了下大概,自己写了下 我用的是jquery-1.8.3.min.js,下面贴代码 JS文件: function trim(str) { //删除左右两端的空格 return str.replace(/(^\s*)|(\s*$)/g, ""); } $(function (){ $("#bName").blu
页面加载后检查用户登录状态,通过ajax实现
拥有会员功能的网站,如果会员已经登录,那么要显示相应的登录状态,而且这种显示的需求是在网站的每个页面都有的(目前国内网站貌似都是这么做的,还没有见过其他形式的状态显示方式),这样,在打开一个新的页面时就要知道这个会员是否已经登录,需要判断登录的状态。 1、解决方案。      为了能够实现在每一个页面判断会员登录状态的功能,我采用了页面时通过ajax传递参数通过后端返回的登录状态结果进行判断,
jQuery 向 servlet 发送和接受JSON数据。
(⊙o⊙)…文章关于jQuery 向 后台发送和接收JSON数据的 某些代码,应该有很多方式其他我还没用过。 一、发送JSON格式的数据 ★注意要用到 jquery.json 的 js文件。下载地址:http://code.google.com/p/jquery-json/         上图粗略解释: 1. $.toJSON() 方法是 jquery.json.js里面的方法,应该
servlet+ajaxjquery 上传图片
html    String path = request.getContextPath();  String basePath = request.getScheme() + "://"    + request.getServerName() + ":" + request.getServerPort()    + path + "/"; %>       "
jquery ajax 向后台传递数组参数示例
原文链接:http://www.jb51.net/article/40131.htm 在JS中向后台传递数组参数,如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串--[object Object],具体的原因及解决方法如下,有类似问题的朋友可以参考下 需求: 在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型(对象、基本类型