您的位置:首页 > 数据库

使用servlet结合ajax验证数据库中是否存在某条记录

2013-05-07 15:02 519 查看
在web页面中添加信息的时候,如果不进行数据库的主键id的验证的话,可能会出现添加异常。所以在添加之前先到数据库中进行验证,避免带来不必要的麻烦,给客户更好的操作体验。

下面就开看一个使用servlet结合ajax进行验证的例子:

首先看看servlet中进行查询数据库的Java代码:ItemValidat.java

package org.ml.drp.servlet;

import java.io.IOException;

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

import org.ml.drp.basedata.manager.ItemFactory;

public class ItemValidate extends HttpServlet {

private static final long serialVersionUID = 1L;

public ItemValidate() {
super();
}

public void destroy() {
super.destroy();
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String itemNo = request.getParameter("itemNo");//取得物料代码
if(ItemFactory.getInstance().getItemManager().findItemById(itemNo)!=null){ //查询数据库
response.getWriter().print("<font color=\"red\">代码已存在</font>");
}else{
response.getWriter().print("<font color=\"green\">OK!</font>");
}
}

public void init() throws ServletException {
}
}

配置servlet的代码:web.xml



<servlet>
<servlet-name>ItemValidate</servlet-name>
<servlet-class>org.ml.drp.servlet.ItemValidate</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ItemValidate</servlet-name>
<url-pattern>/item_validate</url-pattern>
</servlet-mapping>

页面中的ajax验证代码:



<script type="text/javascript">
var xmlHttp
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlHttp = new window.ActiveXObject("Microsoft.XMLHTTP");
}
}
function checkItemNo(itemNo){
if(trim(itemNo.value)!=""){
createXMLHttpRequest();//创建Ajax核心对象XMLHttpRequest
var url = "../item_validate?itemNo="+trim(itemNo.value) + "&time="+new Date().getTime();
//设置请求方式为get,设置 url请求,设置为异步提交
xmlHttp.open("get",url,true);
//将方法地址赋值给属性
xmlHttp.onreadystatechange=function(){//使用匿名对象进行
if(xmlHttp.readyState==4){//响应完成
if(xmlHttp.status==200){//请求成功
var itemNoSpan = document.getElementById("itemNoSpan");
itemNoSpan.innerHTML=xmlHttp.responseText;
}else{
alert("物料代码验证请求失败,请联系管理员")
}
}
};
//将设置的信息发送给Ajax引擎
xmlHttp.send(null);
}else{
document.getElementById("itemNoSpan").innerHTML="<font color='red'>物料代码不能为空</font>";
}
}
</script>

对应的需要验证的标签代码:



<td>
<input name="itemNo" type="text" class="text1" id="itemNo" size="10" maxlength="10" onblur="checkItemNo(this)" onclick="document.getElementById('itemNoSpan').innerHTML=''; ">
<span id="itemNoSpan"></span>
</td>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: