龙空技术网

ajax结合servlet读写mysql实现注册登录

JustByte 112

前言:

当前大家对“ajax登录url”都比较着重,朋友们都想要学习一些“ajax登录url”的相关知识。那么小编同时在网上收集了一些关于“ajax登录url””的相关内容,希望看官们能喜欢,咱们一起来了解一下吧!


打开MyEclipse,新建Web Project

在src里新建package,名为com.test.servlet

在com.test.servlet新建servlet类,命名为UserServlet,下一步,Mapping填写/api/user

将mysql-connector-java-5.1.30.jar复制到文件夹WebRoot/WEB-INF/lib

右击mysql-connector-java-5.1.30.jar,选择Build Path->Add to Build Path

UserServlet.java代码如下:

package com.test.servlet;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UserServlet extends HttpServlet {	@Override	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {		// 设置相应编码		resp.setContentType("text/html;charset=utf-8");				// 获取请求方式:注册和登录都是发送name和password两个参数		String name = req.getParameter("name");		String password = req.getParameter("password");				// 获取请求方式		String method = req.getMethod();				if (name!=null && password!=null) {			Connection conn = null;			PreparedStatement ps = null;			String sql;			try {				Class.forName("com.mysql.jdbc.Driver");				conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "test", "test");				switch (method) {				case "POST":					// 插入数据库					sql = "INSERT INTO user (name, password) VALUES (?, ?)";					ps = conn.prepareStatement(sql);					ps.setString(1, name);					ps.setString(2, password);					// 返回结果					if (1==ps.executeUpdate()) {// 返回影响的行数,没插入成功返回0						resp.getWriter().write("注册成功,现在可以登录了");					} else {						resp.getWriter().write("插入数据库失败");					}					break;				case "GET":					// 读取数据库对比					sql = "SELECT `id` FROM user WHERE name=? AND password=? LIMIT 1";					ps = conn.prepareStatement(sql);					ps.setString(1, name);					ps.setString(2, password);					ResultSet rs = ps.executeQuery();					// 返回结果					if (rs.next()) {						resp.getWriter().write("登录成功");					} else {						resp.getWriter().write("登录失败");					}					rs.close();					break;				default:					resp.getWriter().write("注册请用POST请求,登录请用GET请求");					break;				}							} catch (Exception e) {			} finally {				try {					ps.close();				} catch (SQLException e) {				}				try {					conn.close();				} catch (SQLException e) {				}			}					} else {			resp.getWriter().write("账号和密码不能为空");		}	}}

删除WebRoot文件夹里的index.jsp

在WebRoot文件夹新建文件index.html

Index.html代码如下:

<!DOCTYPE html><html><head>  <title>Servlet读写MySQL测试注册登录</title>  <meta charset="utf-8">  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"></head><body><div style="width: 300px; margin: 0 auto"><div style="height: 50px"></div>  <p>用户名:<input id="name"></p>  <p>密 码:<input type="password" id="password"></p>  <p><button id="btn-register"> 注 册 </button>   <button id="btn-login"> 登 录 </button></p></div></body><script src=";></script><script>$(document).ready(function(){  $("button").click(function(){    var name = $("#name").val()    var password = $("#password").val()    if (name && password) {      switch($(this).attr("id")) {        case "btn-register":          var type = "POST"          $("#name").val("")          $("#password").val("")        break        case "btn-login":          var type = "GET"        break        default:          alert("不存在这个按钮")          return        break      }      $.ajax({        type:type, url:"api/user", data:{name:name, password:password},        success: function(data) {          alert(data)        }      })    } else {      alert("用户名和密码不能空")    }  })})</script></html>

上传到CentOS

最终效果

标签: #ajax登录url