家庭web记账本大致完成。一共就登录、注册、添加流水、查看账单。后续再添加一些计算每周或者没月的汇总,或者美化界面,或者个人信息修改啥的。
自从寒假以来,温习了html,js,学习了新的jQuery,ajax,json,也已经能稍微熟练地运用了。
登录后的界面:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8" import = "java.util.*"%> 3 <!DOCTYPE html> 4 <html> 5 <head> 6 <meta charset="UTF-8"> 7 <title>Insert title here</title> 8 <style type="text/css"> 9 #table{ 10 top: 200px; 11 left: 200px; 12 color: #0099FF; 13 position: absolute; 14 background-color: aquamarine; 15 /* visibility: hidden; */ 16 } 17 #table2{ 18 top: 200px; 19 right: 200px; 20 color: #0099FF; 21 position: absolute; 22 /* visibility: hidden; */ 23 } 24 th{ 25 width: 150px; 26 } 27 #out{ 28 top: 150px; 29 left: 200px; 30 width: 50px; 31 height: 50px; 32 position: absolute; 33 } 34 #in{ 35 top: 150px; 36 width: 50px; 37 right: 200px; 38 height: 50px; 39 position: absolute; 40 } 41 #div2{ 42 visibility: hidden; 43 } 44 </style> 45 </head> 46 <script type="text/javascript" src="js/jquery-3.5.1.js"></script> 47 <script type="text/javascript"> 48 $(document).ready(function(){ 49 $("#add").click(function(){ 50 var a=$("#span1") 51 /* if(a.css("visibility")=="hidden"){ 52 a.css("visibility","visible"); 53 }else{ 54 a.css("visibility","hidden"); 55 } */ 56 var TEMP=1 57 if($("#span1").text()==""){ 58 $("#span1").append("金额<input type='text'id='money'/>元<br><input type='radio' id='pay' name='pay' value='1' checked='checked'> 支出 <input type='radio' id='pay1' name='pay' value='2'>收入<br>明细<input type='text'id='driction'/><br><input type='button'id='btn' value='提交'/><br> ") 59 }else{ 60 $("#span1").text("") 61 } 62 $("#money").blur(function(){ 63 var a=/^\d{1,}$/ 64 if(!(a.test($("#money").val()))){ 65 alert("请输入正确的金额!") 66 }else{ 67 TEMP=0 68 } 69 }) 70 $("#btn").click(function(){ 71 if(TEMP==0){ 72 $.get( 73 "money_servlet", 74 {"money":$("#money").val(),"pay":$("input[type='radio']:checked").val(),"driction":$("#driction").val(),"user":GetQueryString("name")}, 75 function(resp){ 76 console.log(resp) 77 var a=$("#span1") 78 a.text("") 79 alert("添加成功!") 80 }, 81 "json" 82 ) 83 } 84 }) 85 }) 86 87 function GetQueryString(name) 88 { 89 var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); 90 var r = window.location.search.substr(1).match(reg);//search,查询?后面的参数,并匹配正则 91 if(r!=null)return unescape(r[2]); return null; 92 } 93 $("#look").click(function(){ 94 $("#div2").css("visibility","visible") 95 $.ajax({ 96 url:"find_servlet", 97 data:{"name":GetQueryString("name")}, 98 success:function(resp){ 99 $("#table").text("") 100 $("#table1").text("") 101 $("#table").append("<tr><th>金额</th><th>用途</th><th>时间</th></tr>") 102 $("#table1").append("<tr><th>金额</th><th>用途</th><th>时间</th></tr>") 103 $.each(resp,function(i,a){ 104 if(a.pay=="1"){ 105 $("#table").append("<tr><th>"+a.money+"</th><th>"+a.dirction+"</th><th>"+a.time+"</th</tr>") 106 }else{ 107 $("#table2").append("<tr><th>"+a.money+"</th><th>"+a.dirction+"</th><th>"+a.time+"</th</tr>") 108 } 109 }) 110 }, 111 dataType:"json" 112 }) 113 }) 114 }) 115 </script> 116 <body> 117 <div id="div1" align="center"> 118 <input type="button" value="添加新的账目" id="add" /><br> 119 <span id="span1" > 120 <!-- 金额<input type='text'id='money'/>元<br> 121 <input type='radio' name='pay' value='1' checked='checked'> 支出 122 <input type='radio' name='pay' value='2'>收入<br> 123 明细<input type='text'id='driction'/><br> 124 <input type='button'id='btn' value='提交'/><br> --> 125 </span> 126 <input type="button" value="查看账目记录" id="look"/> 127 </div> 128 <div id="div2"> 129 <span id="out">支出:</span> 130 <span id="in">收入:</span> 131 <table border="1px" cellspacing="1" cellpadding="10" id="table"> 132 <tr> 133 <th>金额</th> 134 <th>用途</th> 135 <th>时间</th> 136 </tr> 137 </table> 138 <table border="1px" cellspacing="1" cellpadding="10" id="table2"> 139 <tr> 140 <th>金额</th> 141 <th>用途</th> 142 <th>时间</th> 143 </tr> 144 </table> 145 </div> 146 </body> 147 </html>
后台的money_servlet:
1 package servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.sql.SQLException; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 13 import dao.dao; 14 15 /** 16 * Servlet implementation class money_servlet 17 */ 18 @WebServlet("/money_servlet") 19 public class money_servlet extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 /** 23 * @see HttpServlet#HttpServlet() 24 */ 25 public money_servlet() { 26 super(); 27 // TODO Auto-generated constructor stub 28 } 29 30 /** 31 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 32 */ 33 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 34 request.setCharacterEncoding("utf-8"); 35 response.setContentType("text/html;charset=utf-8"); 36 dao p=new dao(); 37 PrintWriter out=response.getWriter(); 38 String money=null; 39 String pay=null; 40 String driction=null; 41 String name=null; 42 money=request.getParameter("money"); 43 pay=request.getParameter("pay"); 44 driction=request.getParameter("driction"); 45 name=request.getParameter("user"); 46 try { 47 p.addmoney(money, pay, driction, name); 48 } catch (SQLException e) { 49 // TODO 自动生成的 catch 块 50 e.printStackTrace(); 51 } 52 String a="{\"boolean\":\"true\"}"; 53 out.println(a); 54 } 55 56 /** 57 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 58 */ 59 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 60 // TODO Auto-generated method stub 61 doGet(request, response); 62 } 63 64 }
dao层方法:
1 public List<water> find(String name) throws SQLException 2 { 3 List<water> list=new ArrayList<water>(); 4 Connection coon=getConnection(); 5 String sql="select* from money"; 6 PreparedStatement pa=coon.prepareStatement(sql); 7 /* 8 * pa.setInt(1,(page-1)*5); pa.setInt(2, 5); 9 */ 10 ResultSet rs=pa.executeQuery(sql); 11 while(rs.next()) 12 { 13 if(rs.getString("user").equals(name)) 14 { 15 water p=new water(); 16 p.setDirction(rs.getString("driction")); 17 p.setMoney(rs.getString("money")); 18 p.setPay(rs.getString("pay")); 19 p.setTime(rs.getString("time")); 20 list.add(p); 21 } 22 } 23 rs.close(); 24 pa.cancel(); 25 coon.close(); 26 return list; 27 }
mysql表格: