需求

用户登录案例需求

在我们实现用户登录之前需要将jar包放在web目录下WEB-INF

1.编写login.html登录界面

        要点:form表单的目录书写要正确,我的虚拟目录是/,所以直接写loginservlet就行

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>注册页面</title>
</head>
<body>
<form   action="/loginservlet" method="get">
<input type="text" placeholder="请输入用户名" name="username"><br><input type="text" placeholder="请输入密码" name="password"><br><input type="submit" value="登录">
</form>
</body>
</html>

2.使用Druid数据库连接池技术,操作mysql,数据库中的user表(别忘了更改druid.properties文件里面的url路径,使mysql与之对应) 

 我的jdbcutils

有鸡个要点

        1.用字符输入流导入文件(Druid)

2.在声明成员变量时候声明public static DataSourse让每一次连接时候都不用再次声明,简化了代码。

package cn.itcast.web.text;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;/*
jdbc工具类u*/
public class JDBCutils {public static DataSource ds;//获取连接池对象static {//加载配置文件Properties pro = new Properties();InputStream is = JDBCutils.class.getClassLoader().getResourceAsStream("druid.properties");//初始化连接池try {pro.load(is);ds = DruidDataSourceFactory.createDataSource(pro);} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}public static DataSource getDataSource(){return ds;}//获取连接Connection对象public static Connection getConnection() throws SQLException {return ds.getConnection();}
}

我的登录方法

package cn.itcast.web.text;import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;/*
操作数据库userdao方法*/
public class userdao {//声明成员变量private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCutils.getDataSource());public user login(user loginuser){try{String sql = "select * from user where username = ? and password = ?";user user = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<>(user.class),loginuser.getUsername(),loginuser.getPassword());return user;}   catch(DataAccessException e ){e.printStackTrace();return null;}}/*  @Testpublic void test(){user u=new user();u.setUsername("张三");u.setPassword("123");user login = login(u);System.out.println(login);}*/
}

下面是三个request

要点

1.@WebServlet书写目录时候要清晰

successservlet

package cn.itcast.web.text;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("/successservlet")
public class successservlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取request域中共享的数据对象user user = (user)req.getAttribute("user1");if(user!=null){resp.setContentType("text/html;charset=utf-8");resp.getWriter().write("登录成功!"+user.getUsername()+"欢迎您");}}
}

failservlet

package cn.itcast.web.text;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("/failservlet")
public class failservlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=utf-8");resp.getWriter().write("登录失败,用户名或密码错误");}
}

loginservlet

package cn.itcast.web.text;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("/loginservlet")
public class loginSerclet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req,resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置编码req.setCharacterEncoding("utf-8");//获取请求参数String username = req.getParameter("username");String password = req.getParameter("password");//封装user对象user loginuser = new user();loginuser.setUsername(username);loginuser.setPassword(password);//创建userdao对象,然后使用user1接受userdao dao = new userdao();user user1 = dao.login(loginuser);if(user1==null){req.getRequestDispatcher("/failservlet").forward(req,resp);}else{//成功就要存储数据req.setAttribute("user1",user1);req.getRequestDispatcher("/successservlet").forward(req,resp);}}
}

mysql表

测试结果

总结鸡哥要点、

        1.在完成项目时候将要用到的包必须放在web目录下的WEB-INF

        2.在使用不同数据库时候要改变 druid.properties文件里面的url路径

        3.再写目录时候@WebServlet记得要写@WebServlet("/某某某")

        4.成功登录后将数据存到数据域中,跳转到success时候使用

     req.getAttribute接受共享数据域的对象,再接收最后:"登录成功!"+user.getUsername()+"欢迎您"

哈哈其实应该是 ("登录成功!欢迎您"+user.getUsername())

最后感谢帮我看出bug的@蔡旭

Http 实现用户登录(mysql+html+request)相关推荐

  1. root用户登录mysql后新建用户提示1045错误

    执行以下命令查看root权限 show grants for 'root'@'localhost'; 如果没有显示with grant option,说明是root没有拥有新建授权用户的权限(为什么会 ...

  2. Linux普通用户登录MySQL数据库

    创建数据库用户 先初始化root账号密码,用mysqladmin mysqladmin -u root password 123456 使用如下命令登陆 mysql -uroot –p123456 登 ...

  3. [Ubuntu] MySQL服务启动停止与用户登录

    MySQL基础 mysql类型:关系型数据库 关系型数据库的主要产品: oracle:在以前的大型项目中使用,银行,电信等项目 mysql:web时代使用最广泛的关系型数据库 ms sql serve ...

  4. Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 eclipse重置视图 MySQL数据库--建数据库.建数据库 s ...

  5. 十分钟写一个基于springboot+vue+redis+mysql的银行转账与用户后台管理系统,redis实现用户登录与缓存

    界面效果 用户管理界面 详情页面 编辑页面 删除功能 用户界面 查询余额 取出余额 存款 转账 后端包结构 bean包下代码 管理员类 package com.example.qqqundatabas ...

  6. jsp连接mysql数据库,实现含验证码的用户登录

    功能简介 捣腾了几天,总算实现这个小小的登录功能,在此记录一下. 功能:输入框中输入用户名和密码和验证码,提交到服务器进行处理,如果验证码正确,就连接数据库查看用户名和密码是否存在,存在则进入主界面, ...

  7. mysql linux改user_linux mysql误修改user表导致无法root用户登录,求大神帮助。-问答-阿里云开发者社区-阿里云...

    linux mysql误修改user表导致无法root用户登录,急救!!! mysql> select user,host,password from user; user host passw ...

  8. php mysql用户登录_php mysql实现用户登录功能的代码示例

    接着上次的php mysql添加用户的功能代码,今天来学习下php实现用户登录与注销的功能,通过跟踪session会话来保存用户的登陆状态. 1,登录页面 login.php 用户登录_www.# 用 ...

  9. mysql userstat_mysql 中记录用户登录错误日志方法小结

    如何myql server 中,记录用户登录失败的次数,也是很重要的,在mysql 5.x系列中,暂时可以通过配置文件中my.ini设置的方法进行设置,小结如下: 1 general_log_file ...

最新文章

  1. 使用谷歌Colab Notebooks,这6个小技巧你需要掌握
  2. python每日一类(3):os和sys
  3. flutter 常用网址
  4. java入门第六天课程_Java基础知识——第六天
  5. 使用表达式自定义Serilog输出格式
  6. vue项目创建,redis列表字典操作,django用redis的第二种方法
  7. python爬虫记录时间_Python新手写爬虫全过程记录分析
  8. vi撤销、恢复撤销和删除
  9. 从零开始做一个工业级别的实时换脸程序
  10. 统计学习方法第15章-奇异值分解SVD
  11. 【mysql】【windows】MySQL 服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助。...
  12. 【资源分享】一款bootstrap开发的后台管理系统前端模板
  13. 用户登录页面以及后台方法、拦截器
  14. “互联网协作如何改变商业未来”文字实录
  15. 各互联网技术领域pdf图书合集(百度网盘)
  16. 千锋python培训多久
  17. Yarn的任务推测执行机制
  18. C专家编程 第1章 C:穿越时空的迷雾 1.4 KR C
  19. 机器学习与算法(8)--局部加权学习算法(LWR)
  20. Batch Normalization详解(原理+实验分析)

热门文章

  1. 1166 Summit (25 point(s)) PAT甲级
  2. 1.20 Winner
  3. 记录ueditor 秀米图片上传到本地错误
  4. 用ESP8266 把 CC2530+CC2592 刷 ZIGBEE2MQTT 固件
  5. 微信小程序录音与音频播放控制功能
  6. 不同数据源的字段类型 以及相互转换
  7. Zabbix-2.2.2 监控工具如何通过jmx监控 tomcat
  8. 玩机搞机---卸载内置软件 无root权限卸载不需要的软件 安全卸载
  9. drm例子modeset-plane-test
  10. 物联网和大数据解决方案如何改变数字医疗行业