• 家庭记账本的记账功能实现


    此处只放相关部分,如有需要,请参考同名下本人的其他博客

    index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>首页</title>
    </head>
    <style type="text/css">
            *{margin: 0;padding: 0}
            html,body{height: 100%}     /*这里很关键*/
     
            .outer-wrap{
                /*只有同时为html和body设置height: 100%时,这里的height才生效,
                并且随浏览器窗口变化始终保持和浏览器视窗等高*/
                height: 100%;    
                position: relative;
                background-image: url('images/01.jpg');
            }
            .index-panel{
                 400px;
                height: 300px;
                background-image: url('images/04.jpg');
                position: absolute;
                top: 50%;
                left: 50%;
                margin-top: -150px;
                margin-left: -200px;
            }
        </style>
    <body>
    <%
             request.setCharacterEncoding("utf-8");
             String message=(String)request.getAttribute("message");
             if(message!=null){
             if(message.equals("error")){
                 %>
                 <script type="text/javascript">
                  alert("用户名或密码错误");
             </script>
             <%
          }else if(message.equals("noerror")){
              %>
              <script type="text/javascript">
                  alert("登录成功");
             </script>
             <%
          }else{
          }
          }
          %>
          <div class="outer-wrap">
          <div style="font-size:160px;text-align:center">家庭记账本</div>
          <div class="index-panel">
               <div  style="font-size:40px;text-align:center">欢迎您的使用</div>
               <div style="font-size:30px;text-align:center">  <a href="add.jsp">记账</a><br/> </div>
               <div style="font-size:30px;text-align:center"> <a href="show.jsp">查看账目</a> </div>
                
          </div>
          </div>
    </body>
    </html>

    add.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>记账</title>
    </head>
     <style type="text/css">
            *{margin: 0;padding: 0}
            html,body{height: 100%}     /*这里很关键*/
     
            .outer-wrap{
                /*只有同时为html和body设置height: 100%时,这里的height才生效,
                并且随浏览器窗口变化始终保持和浏览器视窗等高*/
                height: 100%;    
                position: relative;
                background-image: url('images/01.jpg');
            }
            .add-panel{
                 400px;
                height: 300px;
                background-image: url('images/06.jpg');
                position: absolute;
                top: 50%;
                left: 50%;
                margin-top: -150px;
                margin-left: -200px;
            }
        </style>
    <body>
    <%
             request.setCharacterEncoding("utf-8");
             String message=(String)request.getAttribute("message");
             if(message!=null){
             if(message.equals("error")){
                 %>
                 <script type="text/javascript">
                  alert("添加失败");
             </script>
             <%
          }else if(message.equals("noerror")){
              %>
              <script type="text/javascript">
                  alert("添加成功");
             </script>
             <%
          }else{
          }
          }
             
          %>
          
    <div class="outer-wrap">
          <div style="font-size:160px;text-align:center">家庭记账本</div>
          <div class="add-panel">
          <div style="text-align:center;color:yellow">请输入要添加的账目信息:</div><br/>
          <form action="AddBillServlet" method="post">
          
        <div style="text-align:center;color:yellow">
                 账目类型<select id="btype" name="btype">
                <option value="饮食">饮食</option>
                <option value="教育">教育</option>
                <option value="购物">购物</option>
                <option value="医疗">医疗</option>
                <option value="收入">收入</option>
                <option value="借贷">借贷</option>
                <option value="其它">其它</option>
            </select>
        </div>
        <div style="text-align:center;color:red">注:借贷和其它类型的账目不计入收支</div>
        <div style="text-align:center;color:yellow">
         金额<input type="text"  name="bmoney"><br/>
        </div>
        <div style="text-align:center;color:yellow">
         日期<input type="date"  name="bdate"><br/>
        </div>
        <div style="text-align:center;color:yellow">
         备注<input type="text"  name="bremark"><br/>
        </div>
        <div style="text-align:center;color:yellow">
         <input type="submit"  value="添加"><br/>
        </div>
        </form>
          </div>
          </div>
    </body>
    </html>

    AddBillServlet.java

    package com.zzw.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.zzw.entity.Bill;
    import com.zzw.service.IUserService;
    import com.zzw.service.Impl.UserServiceImpl;
    
    
    public class AddBillServlet extends HttpServlet {
        
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            response.setContentType("text/html; charset=utf-8");
            String type= request.getParameter("btype");
            int money=Integer.parseInt(request.getParameter("bmoney"));
            String date= request.getParameter("bdate");
            String remark= request.getParameter("bremark");
            Bill bill =new Bill(type,money,date,remark);
            //接口 x=new 实现类()
            IUserService userservice = new UserServiceImpl();
            boolean result=userservice.AddBill(bill);
        
            if(!result) {
                request.setAttribute("message","error");
            }else {
                request.setAttribute("message","noerror");
            }
            request.getRequestDispatcher("add.jsp").forward(request, response);
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }

    UserServiceImpl.java

    package com.zzw.service.Impl;
    
    
    
    
    import com.zzw.dao.IUserDao;
    import com.zzw.dao.Impl.UserDaoImpl;
    import com.zzw.entity.Bill;
    import com.zzw.entity.User;
    import com.zzw.service.IUserService;
    
    public class UserServiceImpl implements IUserService{
        IUserDao userdao= new UserDaoImpl();
        //登录
         public boolean Login(User user) {
                boolean flag=false;
              if(userdao.Login(user.getUname(),user.getUpwd())) {
                    flag=true;
              }
              return flag;
         }
        //注册
        public boolean Register(User user) {
            boolean flag=false;
            if(!userdao.isExist(user.getUname())) {
                userdao.Register(user);
                flag=true;
            }else {
                System.out.println("此人已存在");
            }
           return flag; 
        }
      //根据账号查询用户
        public User Query(String uname) {
            return userdao.Query(uname);
        }
        //记账
        public boolean  AddBill(Bill bill) {
            boolean flag=false;
            if(userdao.AddBill(bill)) {
               flag=true;
            }
            return flag;
        }
    }

    IUserService.java

    package com.zzw.service;
    
    import com.zzw.entity.Bill;
    import com.zzw.entity.User;
    
    public interface IUserService {
        //登录
             public boolean Login(User user);
        //注册
             public boolean Register(User user) ;
        //根据账号查询用户
             public User Query(String uname) ;
        //记账
             public boolean  AddBill(Bill bill) ;
    }

    Bill.java

    package com.zzw.entity;
    
    public class Bill {
          private int bid;
          private String btype;
          private int bmoney;
          private String bdate;
          private String bremark;
          
        public Bill() {
        }
        public Bill(String btype, int bmoney, String bdate, String bremark) {
            this.btype = btype;
            this.bmoney = bmoney;
            this.bdate = bdate;
            this.bremark = bremark;
        }
        public Bill(int bid, String btype, int bmoney, String bdate, String bremark) {
            this.bid = bid;
            this.btype = btype;
            this.bmoney = bmoney;
            this.bdate = bdate;
            this.bremark = bremark;
        }
        @Override
        public String toString() {
            return "Bill [bid=" + bid + ", btype=" + btype + ", bmoney=" + bmoney + ", bdate=" + bdate + ", bremark="
                    + bremark + "]";
        }
        public int getBid() {
            return bid;
        }
        public void setBid(int bid) {
            this.bid = bid;
        }
        public String getBtype() {
            return btype;
        }
        public void setBtype(String btype) {
            this.btype = btype;
        }
        public int getBmoney() {
            return bmoney;
        }
        public void setBmoney(int bmoney) {
            this.bmoney = bmoney;
        }
        public String getBdate() {
            return bdate;
        }
        public void setBdate(String bdate) {
            this.bdate = bdate;
        }
        public String getBremark() {
            return bremark;
        }
        public void setBremark(String bremark) {
            this.bremark = bremark;
        }
          
    }

    UserDaoImpl.java

    package com.zzw.dao.Impl;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import com.zzw.dao.IUserDao;
    import com.zzw.entity.Bill;
    import com.zzw.entity.User;
    import com.zzw.utils.DBUtil;
    
    public class UserDaoImpl implements IUserDao{
        //注册
                public  boolean Register(User user) {
                     String sql="insert into user(uname,upwd,usex) values(?,?,?)" ;
                     Object [] params= {user.getUname(),user.getUpwd(),user.getUsex()};
                     return  DBUtil.executeUpdate(sql, params);
                }
                //查询账户是否存在
                public  boolean isExist(String uname) {
                    return Query(uname)==null? false:true;
                }
        //登录
               public boolean Login(String uname,String upwd) {
                   return Query(uname,upwd)==null? false:true;
               }
        //根据账号查询用户全部信息
        public   User Query(String uname) {
             User user= null;
             ResultSet rs = null; 
             try {
                 String sql="select * from user where uname =?" ;
                 Object [] params= {uname};
                 rs=DBUtil.executeQuery(sql, params);
                 if(rs.next()) {
                     String name=rs.getString("uname");
                     String pwd=rs.getString("upwd");
                     String sex=rs.getString("usex");
                     user= new User(name,pwd,sex);
                 }
             }catch(SQLException e) {
                 e.printStackTrace();
             }catch(Exception e) {
                 e.printStackTrace();
             }finally {
                 try {
                        //先开的后关,后开的先关
                    if(rs!=null)rs.close();
                    if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                    if(DBUtil.connection !=null)DBUtil.connection.close();
                    }catch(SQLException e) {
                        e.printStackTrace();
                    }finally {
                        
                    }
             }
             return user;
        }
        //根据账户密码确定是否存在
        public   User Query(String uname,String upwd) {
             User user= null;
             ResultSet rs = null; 
             try {
                 String sql="select * from user where uname =? and upwd=?" ;
                 Object [] params= {uname,upwd};
                 rs=DBUtil.executeQuery(sql, params);
                 if(rs.next()) {
                     String name=rs.getString("uname");
                     String pwd=rs.getString("upwd");
                     String sex=rs.getString("usex");
                     user= new User(name,pwd,sex);
                 }
             }catch(SQLException e) {
                 e.printStackTrace();
             }catch(Exception e) {
                 e.printStackTrace();
             }finally {
                 try {
                       //先开的后关,后开的先关
                   if(rs!=null)rs.close();
                   if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                   if(DBUtil.connection !=null)DBUtil.connection.close();
                   }catch(SQLException e) {
                       e.printStackTrace();
                   }finally {
                       
                   }
             }
             return user;
        }
        //记账
        public  boolean AddBill(Bill bill) {
            String sql="insert into bill(btype,bmoney,bdate,bremark) values(?,?,?,?)" ;
             Object [] params= {bill.getBtype(),bill.getBmoney(),bill.getBdate(),bill.getBremark()};
             return  DBUtil.executeUpdate(sql, params);
        }
    }

    IUserDao.java

    package com.zzw.dao;
    
    import com.zzw.entity.Bill;
    import com.zzw.entity.User;
    
    public interface IUserDao {
        //注册
        public  boolean Register(User user) ;
        //查询账户是否存在
        public  boolean isExist(String uname) ;
        //登录
        public  boolean Login(String uname,String upwd) ;
        //根据帐号查询用户全部信息
        public   User Query(String uname) ;
        //记账
        public  boolean AddBill(Bill bill);
    }

    下图为数据库中bill表

    登录成功后进入首页

     

     

  • 相关阅读:
    记一次MD5妙用
    go执行外部应用
    Go语言中的HTTP
    Go语言中的UDP应用
    Go学习
    Element-ui学习使用
    Vue学习
    BootCDNApi使用记录
    jquery.easypiechart.js简介
    jquery.gritter.js简介
  • 原文地址:https://www.cnblogs.com/yeyueweiliang/p/12234769.html
Copyright © 2020-2023  润新知