Http 实现用户登录(mysql+html+request)
需求
用户登录案例需求
在我们实现用户登录之前需要将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)相关推荐
- root用户登录mysql后新建用户提示1045错误
执行以下命令查看root权限 show grants for 'root'@'localhost'; 如果没有显示with grant option,说明是root没有拥有新建授权用户的权限(为什么会 ...
- Linux普通用户登录MySQL数据库
创建数据库用户 先初始化root账号密码,用mysqladmin mysqladmin -u root password 123456 使用如下命令登陆 mysql -uroot –p123456 登 ...
- [Ubuntu] MySQL服务启动停止与用户登录
MySQL基础 mysql类型:关系型数据库 关系型数据库的主要产品: oracle:在以前的大型项目中使用,银行,电信等项目 mysql:web时代使用最广泛的关系型数据库 ms sql serve ...
- Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】
[Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目 录 eclipse重置视图 MySQL数据库--建数据库.建数据库 s ...
- 十分钟写一个基于springboot+vue+redis+mysql的银行转账与用户后台管理系统,redis实现用户登录与缓存
界面效果 用户管理界面 详情页面 编辑页面 删除功能 用户界面 查询余额 取出余额 存款 转账 后端包结构 bean包下代码 管理员类 package com.example.qqqundatabas ...
- jsp连接mysql数据库,实现含验证码的用户登录
功能简介 捣腾了几天,总算实现这个小小的登录功能,在此记录一下. 功能:输入框中输入用户名和密码和验证码,提交到服务器进行处理,如果验证码正确,就连接数据库查看用户名和密码是否存在,存在则进入主界面, ...
- mysql linux改user_linux mysql误修改user表导致无法root用户登录,求大神帮助。-问答-阿里云开发者社区-阿里云...
linux mysql误修改user表导致无法root用户登录,急救!!! mysql> select user,host,password from user; user host passw ...
- php mysql用户登录_php mysql实现用户登录功能的代码示例
接着上次的php mysql添加用户的功能代码,今天来学习下php实现用户登录与注销的功能,通过跟踪session会话来保存用户的登陆状态. 1,登录页面 login.php 用户登录_www.# 用 ...
- mysql userstat_mysql 中记录用户登录错误日志方法小结
如何myql server 中,记录用户登录失败的次数,也是很重要的,在mysql 5.x系列中,暂时可以通过配置文件中my.ini设置的方法进行设置,小结如下: 1 general_log_file ...
最新文章
- 使用谷歌Colab Notebooks,这6个小技巧你需要掌握
- python每日一类(3):os和sys
- flutter 常用网址
- java入门第六天课程_Java基础知识——第六天
- 使用表达式自定义Serilog输出格式
- vue项目创建,redis列表字典操作,django用redis的第二种方法
- python爬虫记录时间_Python新手写爬虫全过程记录分析
- vi撤销、恢复撤销和删除
- 从零开始做一个工业级别的实时换脸程序
- 统计学习方法第15章-奇异值分解SVD
- 【mysql】【windows】MySQL 服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助。...
- 【资源分享】一款bootstrap开发的后台管理系统前端模板
- 用户登录页面以及后台方法、拦截器
- “互联网协作如何改变商业未来”文字实录
- 各互联网技术领域pdf图书合集(百度网盘)
- 千锋python培训多久
- Yarn的任务推测执行机制
- C专家编程 第1章 C:穿越时空的迷雾 1.4 KR C
- 机器学习与算法(8)--局部加权学习算法(LWR)
- Batch Normalization详解(原理+实验分析)
热门文章
- 1166 Summit (25 point(s)) PAT甲级
- 1.20 Winner
- 记录ueditor 秀米图片上传到本地错误
- 用ESP8266 把 CC2530+CC2592 刷 ZIGBEE2MQTT 固件
- 微信小程序录音与音频播放控制功能
- 不同数据源的字段类型 以及相互转换
- Zabbix-2.2.2 监控工具如何通过jmx监控 tomcat
- 玩机搞机---卸载内置软件 无root权限卸载不需要的软件 安全卸载
- drm例子modeset-plane-test
- 物联网和大数据解决方案如何改变数字医疗行业