目录
package cn.hp.util;
import java.sql.*;
public class JDBCUtils {
static Connection connection = null ;
static Statement statement = null ;
static PreparedStatement preparedStatement = null ;
static ResultSet resultSet = null ;
static{
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user_system?characterEncoding=utf8&serverTimezone=UTC", "root", "root");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
// 新增和修改 DML 操作 String sql , sql中的参数 preparedStatement Object[] arr 用来补全sql中的?
public static int DML(String sql , Object[] arr ){ // 可变参数 Object ... arr 0~n个参数
int update = 0 ;
try{
preparedStatement = connection.prepareStatement(sql);
// 循环完毕,会将sql中全部? 补充齐
for (int i = 0 ; i < arr.length ; i++){
preparedStatement.setObject(i+1 , arr[i] );
}
update = preparedStatement.executeUpdate();
}catch (SQLException e){
e.printStackTrace();
}
return update ;
}
// 带参查询 DQL 操作
public static ResultSet DQL(String sql , Object[] arr ){
try{
preparedStatement = connection.prepareStatement(sql);
// 循环完毕,会将sql中全部? 补充齐
for (int i = 0 ; i < arr.length ; i++){
preparedStatement.setObject(i+1 , arr[i] );
}
resultSet = preparedStatement.executeQuery();
}catch (SQLException e){
e.printStackTrace();
}
return resultSet ;
}
// 单独提供关闭资源方法
public static void close(){
try {
if (statement!=null){
statement.close();
}
if (connection!= null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package cn.hp.service;
import cn.hp.dao.UserDao;
public class UserService {
public boolean login(String account, String password) {
//service层,依赖于dao层 制定某一条sql执行
UserDao userDao = new UserDao();
int select = userDao.selectByAccountAndPassword(account ,password);
if (select>0){
return true;
}else {
return false;
}
}
public boolean check(String account) {
//service层,依赖于dao层 制定某一条sql执行
UserDao userDao = new UserDao();
int select = userDao.selectByAccount(account);
if (select>0){
return true;
}else {
return false;
}
}
}
package cn.hp.servlet;
import cn.hp.service.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;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.设置用户输入的编码格式,因为有可能是中文
req.setCharacterEncoding("utf-8");
//2.获取用户数输入的内容
String account = req.getParameter("account");
String password = req.getParameter("password");
//3.依据service来判断当前登录的账号密码是否正确
//User表 定义一个UserService 用来处理 所有和user有关的业务
UserService userService = new UserService();
//login方法传入账号密码 返回是否登录成功
boolean flag = userService.login(account,password);
//4.依据是否登录成功,进行控制页面的跳转
if (flag){
req.getRequestDispatcher("success.jsp").forward(req,resp);
}else {
req.setAttribute("msg","密码错误,请重新登录!");
req.getRequestDispatcher("login.jsp").forward(req,resp);
}
}
}
package cn.hp.servlet;
import cn.hp.service.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;
@WebServlet("/check")
public class CheckServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.设置用户输入的编码格式,因为有可能是中文
req.setCharacterEncoding("utf-8");
//2.获取用户数输入的内容
String account = req.getParameter("account");
//3.依据service来判断当前登录的账号密码是否正确
//User表 定义一个UserService 用来处理 所有和user有关的业务
UserService userService = new UserService();
//使用check方法 检出是否存在用户 true 存在用户 false 不存在
boolean flag = userService.check(account);
resp.getWriter().println(flag);
}
}
package cn.hp.dao;
import cn.hp.util.JDBCUtils;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDao {
public int selectByAccountAndPassword(String account, String password) {
//执行select查询sql语句
String sql = "select count(*) from user where account = ? and password = ?";
Object[] objects = {account , password};
ResultSet resultSet = JDBCUtils.DQL(sql,objects);
int select = 0;
try {
while (resultSet.next()){
select = resultSet.getInt(1);
}
}catch (SQLException e){
e.printStackTrace();
}
return select;
}
public int selectByAccount(String account) {
//执行select查询sql语句
String sql = "select count(*) from user where account = ? ";
Object[] objects = {account };
ResultSet resultSet = JDBCUtils.DQL(sql,objects);
int select = 0;
try {
while (resultSet.next()){
select = resultSet.getInt(1);
}
}catch (SQLException e){
e.printStackTrace();
}
return select;
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页</title>
<script src="js/jquery-3.6.0.js"></script>
</head>
<body>
<form action="login">
账号:<input id="input1" type="text" name="account" /> <span id="span1"></span> <br/>
密码:<input type="password" name="password" /> <span style="color:red"> ${msg } </span><br/>
<input type="submit" value="登录"/>
</form>
</body>
<script>
// 使用jQuery完成ajax校验 ,当前账号是否存在
$("#input1").blur(function () {
// 发送ajax请求,获取到当前输入的账号是否存在,写入到span1标签中
let account = $("#input1").val();
$.ajax({
url:"check",
// data:{"account":$("#input1").val() },
data:"account="+account ,
type:"get",
success:function (data) {
let data1 = JSON.parse(data);
if (data1){
// 表示存在当前账号
// 可以登录
$("#span1").html("可以登录");
$("#span1").attr("style","color:green");
}else {
$("#span1").html("未注册");
$("#span1").attr("style","color:red");
}
}
})
})
</script>
</html>
相关推荐:
seO经理是什么岗位,seo经理招聘 ,ai写作重复被查
ChatGPT中文版下载免费版:智能对话新时代,尽在,ai光波
SEO总结:如何通过优化提升网站排名与流量,关键词排名消失
SEO费用如何根据预算选择最合适的SEO服务,营销类推广网站
seo用到什么软件,做seo需要用到什么软件 ,皮皮ai
AI助手Stut:智能时代的创新引擎,开启未来工作新篇章,ai对ai的格斗游戏
ChatGPT为什么网址打不开?原因分析与解决方法,文档审核ai
SEO搜外:全球搜索引擎优化的秘密武器,如何选择网站建设类型呢
SEO优化:提升网站流量的终极指南,揭阳网站快速推广
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
为什么做seo的人很少,为了什么做seo ,ai不负你
ChatGPT198元永久会员,开启智慧之门,体验AI的极致服务!,老孙教ai
SEO建议:如何通过优化提升网站流量,赢得市场竞争,自媒体网站免费推广平台
SEO用户:如何为您的网站带来持续流量和转化,惠州网站推广哪个好
从零到一:网站历史的演变与未来趋势,肇庆市国外网站建设平台
seo资源是什么意思,seo资源怎么打开 ,梅州ai自动插件加工
AI免费工具:提升效率与创意的秘密武器
什么是seo伪原创,seo就业前景伪原创怎么写 ,头像ai画怎么弄
AI缩写在线:让人工智能助力你行业前沿技术,ai uhrehara
ChatGPT宕机两小时,OpenAI紧急修复,用户期待AI恢复正常服务,oppo小布ai
360关键:打造全方位安全保护,守护您的数字世界,ai乘bi
GoogleGPT-引领未来智能对话的革命,灵境ai画质
什么是seo网络推广,seo网络推广技术 ,ai写真官方
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
ChatGPT免费版的限制:你需要了解的5大制约因素,Ai分解模型
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
AI提炼主要内容:如何让信息更精准、高效、易懂,女军人ai
SEO职责:为网站注入流量,提升品牌竞争力,拼多多女装关键词排名
软件AI的全称:人工智能驱动未来的关键力量
seo用什么论坛引流,seo引流方法 ,ai写作续写神器
SEM有哪几个平台?数字营销的多元选择,AI怎么取消移动间距
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
用AI生成的文章算原创吗?深度解析AI写作背后的秘密
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
文章AI生成:让创作变得更简单、更高效!
ChatGPT翻译打不开?解决方法!,ai爱股票
“洗稿技巧如何让你的文章脱颖而出,轻松提升内容创作水平!”,台州椒江seo企业排名
AI免费生成:开启智能创作新纪元,助力你的创意无限可能
SEO排序:如何让你的网页在搜索引擎中脱颖而出,平谷抖音seo推广招聘
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
SEO优化的话题:助力企业成功的关键,夏杰ai智能管家
seo适用于什么领域,seo适用于什么领域中 ,ai智能翻译写作机器人v1.0
seo软文有什么作用,seo文案是什么 ,斐乐Ai测评问题
ChatGPT支付时银行卡被拒绝?教你几招轻松解决问题!,国内ai换图
SEO占位:如何在竞争激烈的市场中占得先机?,梁平区省心全网营销推广
SEO运营是什么职业,seo运营工程师招聘 ,把ai图层改横幅
SEO表格:优化网站排名的秘密武器,大数据推广营销费用多少
乘风SEO-引领企业互联网时代的腾飞之路,南昌b站关键词排名优化贵不贵
ChatGPT:人工智能对话新时代的领航者,ai音响华为还是小米好