做网站价格多少钱/什么是整合营销概念
使用AJAX和JSON实现简单的注册验证
- 简易的注册页面
- 使用ajax发送异步请求的servlet
- dao层的查询数据库的方法
- 附Druid连接池的工具类
服务器使用Tomcat9.0.36
简易的注册页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<center><form><input type="text" id="name" name="username" placeholder="请输入用户名"/><br/><span id="span"></span><br/><input type="password" name="password" placeholder="请输入密码" /><button>提交</button></form>
</center></body>
<script src="js/jquery-2.1.0.min.js"></script>
<script>/* 设置文本款过的失去焦点事件 */$("#name").blur(function () {//获取文本框的值var username = $(this).val();//获取span标签var span = $( "#span" );//发送异步请求$.get( "isExistUserServlet" ,{ "username": username} , function (data) {//响应回来的数据如果名字存在:{ "isExist" : true , "msg" : "此用户名太受欢迎,请换一个!"}//如果不存在 { "isExist" : false , "msg":"此用户名可用" }//console.log( data );if ( data.isExist ){//存在的情况//设置span文本的颜色span.css( "color" , "red" );//设置span标签的内容span.html( data.msg );}else {//名字不存在 可用的情况span.css( "color", "green" );span.html(data.msg);}} );});
</script>
</html>
使用ajax发送异步请求的servlet
package sofwin.web.servlet;import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
import sofwin.domain.User;
import sofwin.service.impl.UserServiceImpl;
import sofwin.service.interFace.UserService;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;@WebServlet("/isExistUserServlet")
public class IsExistUserServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置响应数据的格式 这里设置为json格式 因为要将信息存储在map集合里面 而map集合要转换成json对象才能被客户端识别response.setContentType("application/json;charset=utf-8");//获取异步请求的参数String username = request.getParameter( "username" );//调用service层的方法来判断此用户是否存在UserService service = new UserServiceImpl();int i = service.isExist( username );//创建map集合用来存储信息Map< String , Object > map = new HashMap<>();//判断用户此用户是否存在if ( i != 0 ){map.put( "isExist" , true );map.put( "msg" , "此用户名太受欢迎,请换一个!" );}else {map.put( "isExist" , false );map.put( "msg" , "此用户名可用" );}//创建jackson解析器的核心对象ObjectMapper mapper = new ObjectMapper();//将map集合转换成json对象 并填充到字符输出流 响应到客户端mapper.writeValue( response.getWriter() , map );}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost( request,response );}}
dao层的查询数据库的方法
@Overridepublic int isExist(String name) {Properties pro = new Properties();Connection con = null;PreparedStatement ps = null;ResultSet res = null;int i = 0;try {pro.load( UserDaoImpl.class.getClassLoader().getResourceAsStream("druid.properties") );DataSource ds = DruidDataSourceFactory.createDataSource(pro);con = ds.getConnection();String sql = "select count(*) from user_info where uname=? ";ps = con.prepareStatement( sql );ps.setString( 1 , name );res = ps.executeQuery();while ( res.next() ){i = res.getInt(1);}} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();} finally {if (res != null) {try {res.close();} catch (SQLException e) {e.printStackTrace();}}if (ps != null) {try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (con != null){try {con.close();} catch (SQLException e) {e.printStackTrace();}}}return i;}
附Druid连接池的工具类
package cn.sofwin.utils;import java.sql.*;
import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid.pool.DruidDataSourceFactory;
/*** 通过连接池提供 数据库 的连接对象**/
public class JDBCPoolutil {private static DataSource ds = null;static {try {Properties pro = new Properties();ClassLoader cl = JDBCPoolutil.class.getClassLoader();pro.load(cl.getResourceAsStream("druid.properties"));ds = DruidDataSourceFactory.createDataSource(pro);}catch(Exception e) {System.out.println(e.getMessage());}}public static Connection getConnection() throws SQLException {return ds.getConnection();}public static DataSource getDataSource() {return ds;}public static void close(Statement statement , Connection connection){if(connection!=null) {try {connection.close();//归还} catch (SQLException e) {System.out.println(e.getMessage());}}if (statement != null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();}}}public static void close(ResultSet res,Statement pstmt,Connection con) {if(res!=null) {try {res.close();} catch (SQLException e) {System.out.println(e.getMessage());}}if(pstmt!=null) {try {pstmt.close();} catch (SQLException e) {System.out.println(e.getMessage());}}if(con!=null) {try {con.close();//归还} catch (SQLException e) {System.out.println(e.getMessage());}}}
}