首先创建router包在这个包下面创建登录注册包
创建Servlet工程
一般登录注册逻辑写在Post里面 数据发送较安全
首先获取前端发送的数据
//获取数据
String userName = request.getParameter("userName");
String pwd = request.getParameter("pwd");
通过反射获取数据库连接的方法
Class.forName("com.mysql.jdbc.Driver");
会提示报错需要进行try...catch
try{
//反射获取连接数据库的方法
Class.forName("com.mysql.jdbc");
}catch (Exception e) {
e.printStackTrace();
}
所有的数据库查询代码写在try里面
连接数据库
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/goudan?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false","root","root");
// jdbc:mysql 表示遵循jdbc协议的mysql遵循的规则
// ://localhost 表示连接的ip地址 这里使用的本地进行连接
// :3306 表示mysql默认的端口号
// goudan 表示连接的数据库名
// ? 问号后面的是设置字符集编码 防止乱码显示
创建SQL搜索骨架
防止SQL语句注入
PreparedStatement statement = connection.prepareStatement("select id from user where userName=? and pwd=?");
替换SQL语句里面的问号
statement.setObject(1, userName); statement.setObject(2,pwd);
进行查询
ResultSet query = statement.executeQuery();
判断有没有查询到
//判断有没有结果
if(!query.next()){
response.getWriter().write("用户名或密码输入错误");
return;
}
如果有结果就返回信息
response.getWriter().write("登录成功");
最后关流
connection.close();
为了方便测试在Get里面添加一行代码
doPost(request, response);
运行代码
数据库里准备数据
浏览器里输入
显示出来乱码表示 程序运行成功
但是应该显示 汉字 “登录成功”
因为没有在程序当中设置 返回的字符集 所以会出现乱码现象
在程序开始添加一行代码
response.setContentType("text/html;charset=utf-8");
表示将字符集设置为utf-8
重新运行
点击进入下一篇编写注册逻辑



