idea实现简单的用户登录注册跳转

简介: idea实现简单的用户登录注册跳转

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站点击跳转浏览


一.首先--------用户登录案例需求:

1.编写login.html登录页面

username & password 两个输入框

2.使用Druid数据库连接池技术,操作mysql,test数据库中user表

3.使用JdbcTemplate技术封装JDBC

4.登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎您

5.登录失败跳转到FailServlet展示:登录失败,用户名或密码错误

1.首先是login.html,简单的登录页面

## 标题


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/loginServlet" method="get">
        用户名:<input type="text" name="username"> <br>
        密码:<input type="password" name="password"><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

2 创建项目,导入html页面,配置文件,jar包


3创建数据库环境


CREATE DATABASE test;
    USE test;
    CREATE TABLE USER(
      id INT PRIMARY KEY AUTO_INCREMENT,
      username VARCHAR(32) UNIQUE NOT NULL,
      PASSWORD VARCHAR(32) NOT NULL
    );

4.创建包domain,创建类User

public class User {
        private int id;
        private String username;
        private String password;
         public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    }

5.创建包util,编写工具类JDBCUtils


package util;
    import com.alibaba.druid.pool.DruidDataSourceFactory;
    import javax.sql.DataSource;
    import javax.xml.crypto.Data;
    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Properties;
    /**
     * JDBC工具类 使用Durid连接池
     */
    public class JDBCUtils {
        private static DataSource ds ;
        static {
            try {
                //1.加载配置文件
                Properties pro = new Properties();
                //使用ClassLoader加载配置文件,获取字节输入流
                InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
                pro.load(is);
                //2.初始化连接池对象
                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();
        }
    }

6.创建包cn.itcast.dao,创建类UserDao,提供login方法


package cn.itcast.dao;
    import cn.itcast.domain.User;
    import cn.itcast.util.JDBCUtils;
    import org.springframework.dao.DataAccessException;
    import org.springframework.jdbc.core.BeanPropertyRowMapper;
    import org.springframework.jdbc.core.JdbcTemplate;
    /**
     * 操作数据库中User表的类
     */
    public class UserDao {
        //声明JDBCTemplate对象共用
        private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
        /**
         * 登录方法
         * @param loginUser 只有用户名和密码
         * @return user包含用户全部数据,没有查询到,返回null
         */
        public User login(User loginUser){
            try {
                //1.编写sql
                String sql = "select * from user where username = ? and password = ?";
                //2.调用query方法
                User user = template.queryForObject(sql,
                        new BeanPropertyRowMapper<User>(User.class),
                        loginUser.getUsername(), loginUser.getPassword());
                           return user;
            } catch (DataAccessException e) {
                e.printStackTrace();//记录日志
                return null;
            }
        }
    }

7.编写cn.itcast.web.servlet.LoginServlet类


package cn.itcast.web.servlet;
    import cn.itcast.dao.UserDao;
    import cn.itcast.domain.User;
    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 LoginServlet extends HttpServlet {
    @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //1.设置编码
            req.setCharacterEncoding("utf-8");
            //2.获取请求参数
            String username = req.getParameter("username");
            String password = req.getParameter("password");
            //3.封装user对象
            User loginUser = new User();
            loginUser.setUsername(username);
            loginUser.setPassword(password);
            //4.调用UserDao的login方法
            UserDao dao = new UserDao();
            User user = dao.login(loginUser);
            //5.判断user
            if(user == null){
                //登录失败
                req.getRequestDispatcher("/failServlet").forward(req,resp);
            }else{
                //登录成功
                //存储数据
                req.setAttribute("user",user);
                //转发
                req.getRequestDispatcher("/successServlet").forward(req,resp);
            }
        }
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doGet(req,resp);
        }
    }

8.编写FailServlet和SuccessServlet类


@WebServlet("/successServlet")
    public class SuccessServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //获取request域中共享的user对象
            User user = (User) request.getAttribute("user");
            if(user != null){
                //给页面写一句话
                //设置编码
                response.setContentType("text/html;charset=utf-8");
                //输出
                response.getWriter().write("登录成功!"+user.getUsername()+",欢迎您");
            }.
    @WebServlet("/failServlet")
    public class FailServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //给页面写一句话
            //设置编码
            response.setContentType("text/html;charset=utf-8");
            //输出
            response.getWriter().write("登录失败,用户名或密码错误");
        }
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request,response);
        }
    }

新创建一个公众号 Rockey小何同学 想相互交流的同学可以关注一下哈! 感谢支持!


完整案例源码获取方法


搜索 Rockey小何同学 公众号,后台回复登录案例 即可领取

创作不易,如果您觉得帮助到您了,可以打赏一下,一元也可,多少都可。上不封顶,感谢!

总结


🔥一个人可以掌握知识,但只有与他人交流才能形成智慧。

🔥One person can acquire knowledge, but wisdom is formed only in the exchange with others.

🏆 我坚信人与人之间的差距是表面上是财富的差距,本质上是大脑中认知的差距,


我们下期再见。

相关文章
|
5月前
|
XML SQL Java
IntelliJ IDEA 插件 MybatisX 在mapper和xml间跳转
IntelliJ IDEA 插件 MybatisX 在mapper和xml间跳转
1400 0
|
10月前
idea跳转class文件
idea跳转class文件
104 0
|
XML SQL Java
【IntelliJ IDEA】idea中的插件之一:Free Mybatis plugin跳转插件的使用(方便在Dao接口和Mappper XML文件之间进行切换)
之前使用MyBatis框架或者是在IDEA中,发现Mapper接口和XML文件之间跳转十分的麻烦,我之前经常的操作是在Mapper接口中将接口名称复制一下,然后去查找对应的XML文件,打开后CRTL+F查找对应的xml实现,整个过程效率很低下,搜了搜果然有前辈已经出了一款IDEA的插件解决了这个问题,把这个好用的跳转插件推荐给大家。
990 0
【IntelliJ IDEA】idea中的插件之一:Free Mybatis plugin跳转插件的使用(方便在Dao接口和Mappper XML文件之间进行切换)
idea运行一个类自动跳转到其他类
初学者在使用idea时候经常会遇到运行当前这个类自动跳转到其他类去运行。
558 0
|
SQL 前端开发 Java
IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能
IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能
378 0
IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能
|
Java 数据库连接 mybatis
SSM-MyBatis-01:IDEA的安装,永久注册和简单的MyBatis用例
一,IDEA的安装和永久注册   1.安装:     那到安装包,下一步,选路径,上面可以选操作系统64/32位,下面是程序的默认打开方式,可以不必勾选,也可以全选     路径一定不包含中文,重点   2.
1315 0
|
XML Web App开发 Java
Intellij IDEA 构建Spring Web项目 — 用户登录功能
原文:Intellij IDEA 构建Spring Web项目 — 用户登录功能 相关软件: 1、Intellij IDEA14:http://pan.baidu.com/s/1nu16VyD 2、JDK7:http://pan.
1281 0
intellij idea 15,webstorm 最新注册破解
http://idea.lanyus.com   在激活地址填写上上面的地址就行了,非常简单有效. 亲测idea,webstorm...都可以激活
936 0
|
3月前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
165 0
下一篇
无影云桌面