新闻管理系统(一)管理员登陆实现

今天比较空闲,整理一下这星期学的东西,主要是利用Dao模式对数据库进行增删改查的一个新闻管理系统,分为前台和后台,目前是先写了后台的页面,主要运用了JSP里面的几大内置对象,相信,对初学者应该有一定的借鉴作用,好了,下面来开始说明该系统第一部分的实现和效果吧,
第一,我们先来实现管理员登陆吧,先看看项目路径图
项目路径图
先来总体介绍一下项目的概括,news目录下的几个包封装了关于对数据库进行操作的方法,dao包里面主要是接口方法,daoimp里面则是实现这些接口方法的类,entity里面是实体类,封装了数据库里面的字段,Util里面则是一些通用方法,例如增删改通用方法和连接数据库的方法,这里连接数据库的方法是用的连接池实现的,这个在我上一篇博客中,已经提到,WebRoot/admin目录下存放便是我们管理员用到的JSP文件,由于暂时没有学Servlet,业务逻辑主要是用JSP文件实现的,好了,开始登陆的制作
登陆界面:
当点击提交时,调用查询方法,如果有就登陆,失败,返回一个失败页面。
一,在数据库中创建一个User用户表,字段如下
数据库字段
二,在我们在entiy包下新建一个News实体类,类名最好和对于的表名相同,封装具体的字段
三,在dao包新建NewsDao接口,创建一个查询登陆方法
因为查询结果设计很多字段,我们用一个集合来接收里面的结果,存入News对象中,通过前台传来的账户密码进行检验,
四,新建NewsImpl类,实现接口中的方法,并继承Util包下的BaseDao类(下面会提到)

public Users login(String username, String userpwd) {
        // TODO Auto-generated method stub
        Users user = null;//声明user对象,如果查询到了,就实例化,查询不到就为空,返回user,最后通过判断user值是否为空来验证时否登陆成功
        con = getConnect();
        String sql = "select * from t_user where username=? and userpwd=?";
        try {
            pstmt = con.prepareStatement(sql);
            pstmt.setString(1, username);//前台传入的待用,传入的数据
            pstmt.setString(2, userpwd);
            rs = pstmt.executeQuery();//执行sql
            if(rs.next()){
//程序如果能运行到这里,说明查询成功,实例化user对象
                user = new Users();
                user.setId(rs.getInt(1));
                user.setUsername(rs.getString(2));
                user.setUserpwd(rs.getString(3));
                user.setEmail(rs.getString(4));
                user.setAddress(rs.getString(5));
                user.setHobby(rs.getString(6));         
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       
        return user;//返回user对象
    }

五,在Util包下创建BaseDao,创建连接数据库方法,增删改通用方法和查询通用方法(通用方法根据具体实际情况选择使用),这里我在上一篇的博客已经说过,不再重复说明。
六,在WebRoot/admin创建index,实现界面
登陆界面
关键代码如下
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里主要是表单,拿到表单提交的数据在loginindex进行验证,对我划红线不明白是什么功能的同学可以去查询一下表单功能。
七,创建loginindex.jsp文件

<% String username = request.getParameter("loginId");//拿到前台数据传过来的账户
       String userpwd = request.getParameter("password");//拿到前台数据传过来的密码
       Users user = new Users();//传教
      UserDao userdao = new UserImpl();//接口引用具体子类
       user = userdao.login(username,userpwd);
        session.setAttribute("user",user);//保存user对象到会话中去
       if(user!=null){
       request.getRequestDispatcher("mainform.jsp").forward(request,response);//如果user有值说明查询成功,跳转登陆
       //成功界面,通过转发,可以把数据也传过去
       }else{

       response.sendRedirect("error.jsp");//失败则跳转失败页面,使用重定向,因为不需要传数据过去
       }

这样便完成了登陆界面的制作
这里写图片描述

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值