ajax异步调用
来源:互联网 发布:软件销售工作好么 编辑:程序博客网 时间:2024/05/16 06:50
1、构建数据库连接的工具类
package com.icss.DAO;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import java.util.Properties;import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;/** * 类的作用是加载驱动,建立连接,释放资源,增删改操作 * @author fly * */public class BaseDao { //创建一个连接对象,返回connection public static Connection getConnection(){ Connection connection = null; //从连接池中取连接对象 Context cxtContext = null; DataSource dsDataSource = null; try { cxtContext = new InitialContext(); dsDataSource = (DataSource)cxtContext.lookup("java:comp/env/myschoolConn"); connection = dsDataSource.getConnection(); } catch (Exception e) { System.out.println("连接不成功"); } return connection; } public static boolean executeUpdate(String sql,Object ...obj){ Connection connection = getConnection(); PreparedStatement pst = null; int result = 0; try { pst = connection.prepareStatement(sql); //预编译 //判断是否有参数传入,如果没有,则obj数组是null if(obj!=null){ for(int i =0;i<obj.length;i++){ pst.setObject(i+1, obj[i]); } } result = pst.executeUpdate(); } catch (Exception e) { System.out.println("数据库增删改有问题"); }finally{ closeAll(connection,pst,null); } return result>0; } public static void closeAll(Connection conn,Statement st,ResultSet rs){ try { if(rs!= null) rs.close(); if(st!= null)st.close(); if(conn!=null) conn.close(); } catch (Exception e) { System.out.println("关闭资源"); } }}
2、连接池的设置
在WebRoot下的META-INF中创建一个context.xml文件
<?xml version='1.0' encoding='utf-8'?><Context><Resource name ="myschoolConn" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="123456" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/myschool?characterEncoding=utf-8"/></Context>
3、创建Ajaxl对象
package com.icss.entity;public class Admin { private int id; private String loginId; private String loginPwd; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getLoginId() { return loginId; } public void setLoginId(String loginId) { this.loginId = loginId; } public String getLoginPwd() { return loginPwd; } public void setLoginPwd(String loginPwd) { this.loginPwd = loginPwd; }}
4、创建dao层方法
package com.icss.DAO;import com.icss.entity.Admin;public interface AdminDao { public Admin getAdminByLoginId(String loginId);}
5、dao层方法的实现
package com.icss.Imp;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import com.icss.DAO.AdminDao;import com.icss.DAO.BaseDao;import com.icss.entity.Admin;public class AdminDaoImp implements AdminDao { @Override public Admin getAdminByLoginId(String loginId) { Connection connection = BaseDao.getConnection(); Statement statement = null; ResultSet resultSet = null; Admin admin = null; String sqlString = "select * from admin where loginid = '"+loginId+"'"; try { statement = connection.createStatement(); resultSet = statement.executeQuery(sqlString); if(resultSet.next()){ admin = new Admin(); admin.setId(resultSet.getInt(1)); admin.setLoginId(resultSet.getString(2)); admin.setLoginPwd(resultSet.getString(3)); } } catch (Exception e) { }finally{ BaseDao.closeAll(connection, statement, resultSet); } return admin; }}
6、调用dao层方法
package com.icss.service;import com.icss.DAO.AdminDao;import com.icss.Imp.AdminDaoImp;import com.icss.entity.Admin;public class AdminService { AdminDao dao = new AdminDaoImp(); public Admin getAdminByLoginId(String loginId){ return dao.getAdminByLoginId(loginId); }}
7、Servlet方法
package com.icss.Servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.icss.entity.Admin;import com.icss.service.AdminService;public class AdminServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String loginId = request.getParameter("loginId"); Admin admin = new AdminService().getAdminByLoginId(loginId); if(admin == null){ //表示用户名不存在,则用户名可用 //向客户端返回信息 response.getWriter().write("yes"); }else{ //表示用户名不可用 response.getWriter().write("no"); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
8、采用JavaScript实现
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <style> #div1{width:400px;margin:0 auto;} </style> <script type="text/javascript"> //1、获取XMLHttpRequest对象的函数 function getXMLHttpRequest(){ if(window.XMLHttpRequest){ return new XMLHttpRequest(); } } var xhr; //文本框失去焦点触发函数 function inputLogin(txt){ xhr = getXMLHttpRequest(); //调用方法创建XMLHttpRequest对象 var loginId = txt.value; //取文本框的值 xhr.onreadystatechange=resultFunction; //设置回调函数 //初始化XMLHttpRequest对象 xhr.open("GET", "AdminServlet?loginId="+loginId,true); //XMLHttpRequest对象发送请求 xhr.send(null); } //回调函数 function resultFunction(){ var s = document.getElementById("s"); if(xhr.readyState == 4){ if(xhr.status == 200){ var data = xhr.responseText; if(data == "yes"){ s.style.color = "green"; s.innerHTML="用户名可用"; }else{ s.style.color = "red"; s.innerHTML="用户名已存在"; } } } } </script> </head> <body> <div id="div1"> <h2>管理员添加</h2> <from action="" method="post"> <fieldset> <legend>注册信息</legend> <p>用户名:<input type="text" name="loginId"onblur="inputLogin(this)" id="loginId"/><span id="s"></span></p> <p>密 码:<input type="password" name="loginPwd"/></p> <p><input type="submit" value="注册"></p> </fieldset> </from> </div> </body></html>
9、采用jquery实现
方法一:
<script type="text/javascript"> //文本框失去焦点触发函数 function inputLogin(txt){ var id = $("#loginId").val(); //取文本框值 var sp = $("#s"); //取span标签 $.ajax({ type:"GET", url:"AdminServlet", data:"loginId="+id, dataType:"text", success:function(d){ if(d == "yes"){ sp.css("color","green").html(" 用户名可用..."); }else{ sp.css("color","red").html(" 用户名已存在..."); } } }); } </script>
方法二:
通过get方法
function inputLogin(txt){ var id = $("#loginId").val(); //取文本框值 var sp = $("#s"); //取span标签 $.get( "AdminServlet", {loginId:id}, function(d){ if(d == "yes"){ sp.css("color","green").html(" 用户名可用!"); }else{ sp.css("color","red").html(" 用户名已存在!"); } }, "text" ); }
也可以用post方法
function inputLogin(txt){ var id = $("#loginId").val(); //取文本框值 var sp = $("#s"); //取span标签 $.post( "AdminServlet", {loginId:id}, function(d){ if(d == "yes"){ sp.css("color","green").html(" 用户名可用!"); }else{ sp.css("color","red").html(" 用户名已存在!"); } }, "text" ); }
阅读全文
1 0
- ajax 异步调用方法
- Ajax异步调用框架
- ajax异步调用
- Ajax异步调用代码
- Ajax异步调用代码
- ajax同步异步调用
- ajax异步调用
- ajax异步调用
- ajax异步调用
- 手写实现ajax异步调用
- openlayers3异步调用geojson, Ajax
- ExtJs异步ajax调用和同步ajax调用公用方法
- Ajax异步调用Web服务的例子
- ajax.dll异步调用的实现
- JavaScript 简单理解Ajax异步调用操作
- Ajax异步调用返回码及意义
- AJAX实例教程:异步调用的程序
- ajax调用action类处理异步请求
- ArrayIterator迭代器遍历数组
- Android recovery UI实现分析
- Netty4.0学习笔记系列之一:Server与Client的通讯
- 隔离见证是什麽? 为什麽我们必须尽快实行?
- Ant标签详解
- ajax异步调用
- javaseday29(tcp)
- node request(api文件下载时用到)
- 做程序员有哪些好处?
- 支持向量机(SVM)
- 数据库(MySQL)的优化技巧
- Kotlin视频
- VSTO:无法安装此应用程序,因为已安装具有相同标识的应用程序
- Vue相关框架