初级前后端项目

本文介绍了一个初级前后端项目,涉及用户登录功能。通过编写login.html页面,利用Druid数据库连接池技术和JdbcTemplate封装JDBC,实现与MySQL数据库交互,验证用户登录。登录成功跳转SuccessServlet,失败则跳转FailServlet展示相应信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例:用户登陆
    需求:
        1.编写login.html登录页面
                       username & passwprd两个输入框
        2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表
        3.使用JdbcTemplate技术封装JDBC
        4.登陆成功跳转到SuccessServlet展示:登陆成功!用户名,欢迎您
        5.登陆失败跳转到FailServlet展示:登录失败,用户名或密码错误

    分析:
    1.编写login.html页面,表单form的action为/day14/loginServlet
    2.编写一个User类,成员变量与数据库中的user表中的字段相同, 用于封装请求参数。
    3.编写一个数据库连接工具类JDBCUtils,使用Druid数据库连接池技术来连接数据库
      3.1将所需的jar包导入到WEB-INF下的libs目录
     3.2使用静态代码块加载配置文件,初始化连接池对象
        static{
            //加载配置文件
            Properties pro=new Properties();
            pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
            
            //初始化连接池对象
            DataSource ds=DruidDataSourceFactroy.createDataSource(pro);
            }
      3.3编写两个方法
        1.获取数据库连接池对象 DataSource getDataSource()
        2.获取数据库连接 Connection getConnection()
    4.编写一个操作数据库的类Userdao,为了操作数据库更方便(此时需要一个工具类JDBCUtils)
      4.1使用jdbcTemplate技术封装JDBC
        jdbcTemplate template=new jdbcTemplate(JDBCUtils.getDataSource);
      4.2编写验证登陆函数
        User login(User loginuser){
            try{
            //定义sql语句
            String sql="select *from user where username=? &&password=?";
            //查询
            User user=termplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),
                              loginuser.getusername(), loginuser.getpassword());
            //此时如果查询失败会报错,抛异常。
            //但是该异常为运行时异常,编译时检测不到,需要用try...catych来抓取
            //快捷键ctrl+alt+T
            return user;
              }catch(DataAccessException e){
            e.printStackTrace();
            return null;
            }
                }
    5.编写登陆页面LoginServlet,资源名称为/loginServlet.注意:编写方法时:使用try..catch抓取,不要抛出异常
       5.1获取表单提交的请求参数  String getParameter(String name)
        String username=request.getParameter("username");
        String password=request.getParameter("password");
       5.2将获取的参数封装为User对象 loginuser(此时需要一个User类)
        User loginuser=new User(username,password);
       5.3需要将 loginuser作为参数传入到操作数据库的方法中(此时需要一操作数据库的类)
        User user=new Userdao().login(loginuser);
       5.4判断返回的user对象的值
        if(user==null){
            //跳转到FailServlet页面
            request.getResquestDispatcher("/failServlet").forward(resquest,response);
        }else{
            //设置request域共享数据
            request.setAttribute("name",user.getusername());
            //跳转到SuccessServlet页面
            request.getRequestDispatcher("/successServlet").forward(request,response);
            }
    6.编写FailServlet和SuccessServlet响应操作页面
      6.1FailServlet
        response.setContextType("text/html;character=utf-8");
        response.getWriter().write("登陆失败,用户名或密码错误");
      6.2SuccessServlet
        //获取request域数据
        String name=request.getAttribute("name");
        response.setContextType("text/html;character=utf-8");
        response.getWriter().write("登陆成功!"+name+"欢迎您");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值