基于Javaweb实现ATM机系统开发实战(十五)退卡和转账跳转实现

首先创建一个servlet接受和处理请求:

package com.atm.servlet;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;//用户退出
@WebServlet("/logout")
public class ExitServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//销毁session对象,或销毁session中保存的用户数据//        request.getSession().removeAttribute("ua");request.getSession().invalidate();response.sendRedirect("/changepage/login.jsp");}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}
}

对前端页面进行修改:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%> 
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8"><title>IMUT_BANK ATM WelCome!!</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content=""><!-- Le styles --><script type="text/javascript" src="assets/js/jquery.min.js"></script><link rel="stylesheet" href="assets/css/style.css"><link rel="stylesheet" href="assets/css/loader-style.css"><link rel="stylesheet" href="assets/css/bootstrap.css"><link href="assets/css/icons-style.css" rel="stylesheet"><!-- HTML5 shim, for IE6-8 support of HTML5 elements --><!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--><!-- Fav and touch icons --><link rel="shortcut icon" href="assets/ico/minus.png">
<!--     <style type="text/css">a{color: blue;}a: hover {color: Red;}</style> -->
</head><body><!-- Preloader --><div id="preloader"><div id="status">&nbsp;</div></div><!-- TOP NAVBAR --><nav role="navigation" class="navbar navbar-static-top"><div class="container-fluid"><!-- Brand and toggle get grouped for better mobile display --><div class="navbar-header"><button data-target="#bs-example-navbar-collapse-1" data-toggle="collapse" class="navbar-toggle" type="button"><span class="entypo-menu"></span></button><button class="navbar-toggle toggle-menu-mobile toggle-left" type="button"><span class="entypo-list-add"></span></button><div id="logo-mobile" class="visible-xs"><h1>IMUT ATM<span>v2.2.7</span></h1></div></div><!-- Collect the nav links, forms, and other content for toggling --><div id="bs-example-navbar-collapse-1" class="collapse navbar-collapse"><ul class="nav navbar-nav"><li class="dropdown"><ul style="margin: 11px 0 0 9px;" role="menu" class="dropdown-menu dropdown-wrap"></ul></li><li><a href="#"><i data-toggle="tooltip" data-placement="bottom" title="Help" style="font-size:20px;" class="icon-help tooltitle"></i></a></li></ul><div id="nt-title-container" class="navbar-left running-text visible-lg"><ul id="digital-clock" class="digital"><div id="time"><script>document.getElementById('time').innerHTML = new Date().toLocaleString()+ ' 星期' + '日一二三四五六'.charAt(new Date().getDay());setInterval("document.getElementById('time').innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());",1000);</script>
</div></ul><ul id="nt-title"><li><i class="wi-day-lightning"></i>&#160;&#160;北京&#160;<b>24°</b><i class="wi-Celsius"></i>&#160;; </li><li><i class="wi-day-lightning"></i>&#160;&#160;上海&#160;<b>28°</b><i class="wi-Celsius"></i>&#160;;</li><li><i class="wi-day-lightning"></i>&#160;&#160;内蒙古&#160;<b>26°</b><i class="wi-Celsius"></i>&#160;;</li><li><i class="wi-day-lightning"></i>&#160;&#160;海南&#160;<b>31°</b><i class="wi-Celsius"></i>&#160;; </li><li><i class="wi-day-lightning"></i>&#160;&#160;四川&#160;<b>29°</b><i class="wi-Celsius"></i>&#160;; </li></ul></div><ul style="margin-right:0;" class="nav navbar-nav navbar-right"><li><a data-toggle="dropdown" class="dropdown-toggle" href="#"><img alt="" class="admin-pic img-circle" src="http://api.randomuser.me/portraits/thumb/men/10.jpg">欢迎您 <b class="caret"></b></a><ul style="margin-top:14px;" role="menu" class="dropdown-setting dropdown-menu"><li><a href="#"><span class="entypo-user"></span>&#160;&#160;我的账户</a></li><li><a href="#"><span class="entypo-vcard"></span>&#160;&#160;账户设置</a></li><li><a href="#"><span class="entypo-lifebuoy"></span>&#160;&#160;帮助</a></li><li class="divider"></li><li><a href="/logout"><span class="entypo-user"></span>&#160;&#160; 退出账户</a></li></ul></li><li><a data-toggle="dropdown" class="dropdown-toggle" href="#"><span class="icon-gear"></span>&#160;&#160;背景颜色</a><ul role="menu" class="dropdown-setting dropdown-menu"><li class="theme-bg"><div id="button-bg"></div><div id="button-bg2"></div><div id="button-bg3"></div><div id="button-bg5"></div><div id="button-bg6"></div><div id="button-bg7"></div><div id="button-bg8"></div><div id="button-bg9"></div><div id="button-bg10"></div><div id="button-bg11"></div><div id="button-bg12"></div><div id="button-bg13"></div></li></ul></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid --></nav><!-- /END OF TOP NAVBAR --><!-- SIDE MENU --><div id="skin-select"><div id="logo"><h1>IMUT ATM<span>v2.2.7</span></h1></h1></div><a id="toggle"><span class="entypo-menu"></span></a><div class="dark"><form action="#"><span><input type="text" name="search" value="" class="search rounded id_search" placeholder="Search Menu..." autofocus=""></span></form></div><div class="search-hover"><form id="demo-2"><input type="search" placeholder="Search Menu..." class="id_search"></form></div><div class="search-hover"><form id="demo-2"><input type="search" placeholder="Search Menu..." class="id_search"></form></div><div class="skin-part"><div id="tree-wrap"><div class="side-bar"><ul class="topnav menu-left-nest"></ul><ul class="topnav menu-left-nest"><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserIndex.jsp" title="Profile Page"><i class="icon-user"></i><span>用户信息</span></a></li><li><a class="tooltip-tip" href="/changepage/UserChangePwd.jsp" title="Extra Pages"><i class="icon-lock"></i><span>修改密码</span></a><li><a class="tooltip-tip2 ajax-load" href="/UserSerch" title="Blank Page"><i class="icon-media-record"></i><span>查询余额</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserStore.jsp" title="Invoice"><i class="entypo-newspaper"></i><span>存款</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserFetch.jsp" title="Pricing Table"><i class="fontawesome-money"></i><span>取款</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserTransfer.jsp" title="Time Line"><i class="entypo-clock"></i><span>转账</span></a></li><li><a class="tooltip-tip2" href="/serchDetaile" title="404 Error Page"><i class="icon-preview"></i><span>交易明细</span></a></li><li><a class="tooltip-tip2" href="/logout" title="login.jsp"><i class="icon-mail"></i><span>退卡</span></a></li></ul></div></div></div></div><!-- END OF SIDE MENU --><!--  PAPER WRAP --><div class="wrap-fluid"><div class="container-fluid paper-wrap bevel tlbr"><!--/ TITLE --><!-- BREADCRUMB --><ul id="breadcrumb"><li><span class="entypo-home"></span></li><li><i class="fa fa-lg fa-angle-right"></i></li><li><a href="#" title="Sample page 1">首页</a></li><li><i class="fa fa-lg fa-angle-right"></i></li><li><a href="#" title="Sample page 1">交易明细</a></li></ul><!-- END OF BREADCRUMB --><div class="content-wrap"><div class="row"><div class="col-sm-12"><!-- BLANK PAGE--><h2 align="center"><b>IMUT BANK借记卡明细对账单</b></h2><%SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式request.setAttribute("date_time", df.format(new Date()));%><h4 align="center">打印日期:${date_time }</h4><div class="body-nest" id="Blank_Page_Content"><div class="form_center"></table> <table width="90%" border='2'><tr align="center"><br><br><th><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;卡&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></th><th><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></th><th><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;货&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;币&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></th><th><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;交&nbsp;&nbsp;易&nbsp;&nbsp;金&nbsp;&nbsp;额&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></th><th><font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;账&nbsp;&nbsp;户&nbsp;&nbsp;余&nbsp;&nbsp;额&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></th></tr><c:forEach items="${pageBean.list }" var="user"><tr><td>${user.icno }</td><td>${user.rm_date }</td><td>${user.rm_currency }</td><td>${user.rm_balance }</td><td>${user.rm_rest }</td></tr></c:forEach></table>                </div></div></div></div><!-- END OF BLANK PAGE --></div>
<%-- ${requestScope.pageBean.pageNum == 1} --%>
<!-- <input hidden="true" name="pageNum" value="1"/> -->
<%-- <c:if test="${pageBean.pageNum==0}">${pageContext.request.contextPath}/serchDetaile?pageNum=1
</c:if> --%>
<div align="center">
<br/>
<br/>
<br/>
<!-- ---------------------------------------------------------------------------------------------------------- -->
<%-- 构建分页导航 --%><p style="font-size:20px; color:gray">共有${pageBean.totalRecord}条数据,共${pageBean.totalPage}页,当前为${pageBean.pageNum}页</p><br/><div style="font-size: 17px; color: black"><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=1" style="font-color: green">首页</a><%--如果当前页为第一页时,就没有上一页这个超链接显示 --%><c:if test="${pageBean.pageNum ==1}"><c:forEach begin="${pageBean.start}" end="${pageBean.end}" step="1" var="i"><c:if test="${pageBean.pageNum == i}">${i}</c:if>                <c:if test="${pageBean.pageNum != i}"><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=${i}">${i}</a>                                        </c:if>                        </c:forEach><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=${pageBean.pageNum+1}">下一页</a></c:if><%--如果当前页不是第一页也不是最后一页,则有上一页和下一页这个超链接显示 --%><c:if test="${pageBean.pageNum > 1 && pageBean.pageNum < pageBean.totalPage}"><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=${pageBean.pageNum-1}">上一页</a><c:forEach begin="${pageBean.start}" end="${pageBean.end}" step="1" var="i">    <c:if test="${pageBean.pageNum == i}">${i}</c:if>            <c:if test="${pageBean.pageNum != i}"><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=${i}">${i}</a>                                        </c:if>                        </c:forEach><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=${pageBean.pageNum+1}">下一页</a>    </c:if><%-- 如果当前页是最后一页,则只有上一页这个超链接显示,下一页没有 --%><c:if test="${pageBean.pageNum!=1 &&pageBean.pageNum == pageBean.totalPage}"><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=${pageBean.pageNum-1}">上一页</a><c:forEach begin="${pageBean.start}" end="${pageBean.end}" step="1" var="i"><c:if test="${pageBean.pageNum == i}">${i}</c:if><c:if test="${pageBean.pageNum != i}"><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=${i}">${i}</a>                                        </c:if>                </c:forEach></c:if><%--尾页 --%><a href="${pageContext.request.contextPath}/serchDetaile?pageNum=${pageBean.totalPage}">尾页</a></div><!-- /END OF CONTENT --><!-- ---------------------------------------------------------------------------------------------------------------- -->
</div><!-- FOOTER --><div class="footer-space"></div><div id="footer"><div class="devider-footer-left"></div><div class="time"><p id="spanDate"><p id="clock"></div><div class="copyright">本网站基于百度查询开发 <a href="http://www.baidu.com/" title="百度" target="_blank">百度</a> All Rights Reserved</div><div class="devider-footer"></div></div><!-- / END OF FOOTER --></div></div><!--  END OF PAPER WRAP --><!-- RIGHT SLIDER CONTENT --><div class="sb-slidebar sb-right"><div class="right-wrapper"><div class="row"><h3><span><i class="entypo-gauge"></i>&nbsp;&nbsp;MAIN WIDGET</span></h3><div class="col-sm-12"><div class="widget-knob"><span class="chart" style="position:relative" data-percent="86"><span class="percent"></span></span></div><div class="widget-def"><b>Distance traveled</b><br><i>86% to the check point</i></div><div class="widget-knob"><span class="speed-car" style="position:relative" data-percent="60"><span class="percent2"></span></span></div><div class="widget-def"><b>The average speed</b><br><i>30KM/h avarage speed</i></div><div class="widget-knob"><span class="overall" style="position:relative" data-percent="25"><span class="percent3"></span></span></div><div class="widget-def"><b>Overall result</b><br><i>30KM/h avarage Result</i></div></div></div></div><div style="margin-top:0;" class="right-wrapper"><div class="row"><h3><span><i class="entypo-chat"></i>&nbsp;&nbsp;CHAT</span></h3><div class="col-sm-12"><span class="label label-warning label-chat">Online</span><ul class="chat"><li><a href="#"><span><img alt="" class="img-chat img-circle" src="http://api.randomuser.me/portraits/thumb/men/20.jpg"></span><b>Dave Junior</b><br><i>Last seen : 08:00 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-circle" src="http://api.randomuser.me/portraits/thumb/men/21.jpg"></span><b>Kenneth Lucas</b><br><i>Last seen : 07:21 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-circle" src="http://api.randomuser.me/portraits/thumb/men/22.jpg"></span><b>Heidi Perez</b><br><i>Last seen : 05:43 PM</i></a></li></ul><span class="label label-chat">Offline</span><ul class="chat"><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/men/23.jpg"></span><b>Dave Junior</b><br><i>Last seen : 08:00 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/women/24.jpg"></span><b>Kenneth Lucas</b><br><i>Last seen : 07:21 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/men/25.jpg"></span><b>Heidi Perez</b><br><i>Last seen : 05:43 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/women/25.jpg"></span><b>Kenneth Lucas</b><br><i>Last seen : 07:21 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/men/26.jpg"></span><b>Heidi Perez</b><br><i>Last seen : 05:43 PM</i></a></li></ul></div></div></div></div><!-- END OF RIGHT SLIDER CONTENT--><!-- MAIN EFFECT --><script type="text/javascript" src="assets/js/preloader.js"></script><script type="text/javascript" src="assets/js/bootstrap.js"></script><script type="text/javascript" src="assets/js/app.js"></script><script type="text/javascript" src="assets/js/load.js"></script><script type="text/javascript" src="assets/js/main.js"></script></div></body></html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"><title>IMUT_BANK ATM WelCome!!</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content=""><!-- Le styles --><script type="text/javascript" src="assets/js/jquery.js"></script><link rel="stylesheet" href="assets/css/style.css"><link rel="stylesheet" href="assets/css/loader-style.css"><link rel="stylesheet" href="assets/css/bootstrap.css"><link rel="stylesheet" href="assets/css/extra-pages.css"><!-- HTML5 shim, for IE6-8 support of HTML5 elements --><!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--><!-- Fav and touch icons --><link rel="shortcut icon" href="assets/ico/minus.png">
</head><body><!-- Preloader --><div id="preloader"><div id="status">&nbsp;</div></div><!-- TOP NAVBAR --><nav role="navigation" class="navbar navbar-static-top"><div class="container-fluid"><!-- Brand and toggle get grouped for better mobile display --><div class="navbar-header"><button data-target="#bs-example-navbar-collapse-1" data-toggle="collapse" class="navbar-toggle" type="button"><span class="entypo-menu"></span></button><button class="navbar-toggle toggle-menu-mobile toggle-left" type="button"><span class="entypo-list-add"></span></button><div id="logo-mobile" class="visible-xs"><h1>IMUT ATM<span>v2.2.7</span></h1></div></div><!-- Collect the nav links, forms, and other content for toggling --><div id="bs-example-navbar-collapse-1" class="collapse navbar-collapse"><ul class="nav navbar-nav"><li class="dropdown"><ul style="margin: 11px 0 0 9px;" role="menu" class="dropdown-menu dropdown-wrap"></ul></li><li><a href="#"><i data-toggle="tooltip" data-placement="bottom" title="Help" style="font-size:20px;" class="icon-help tooltitle"></i></a></li></ul><div id="nt-title-container" class="navbar-left running-text visible-lg"><ul id="digital-clock" class="digital"><div id="time"><script>document.getElementById('time').innerHTML = new Date().toLocaleString()+ ' 星期' + '日一二三四五六'.charAt(new Date().getDay());setInterval("document.getElementById('time').innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());",1000);</script>
</div></ul><ul id="nt-title"><li><i class="wi-day-lightning"></i>&#160;&#160;北京&#160;<b>24°</b><i class="wi-Celsius"></i>&#160;; </li><li><i class="wi-day-lightning"></i>&#160;&#160;上海&#160;<b>28°</b><i class="wi-Celsius"></i>&#160;;</li><li><i class="wi-day-lightning"></i>&#160;&#160;内蒙古&#160;<b>26°</b><i class="wi-Celsius"></i>&#160;;</li><li><i class="wi-day-lightning"></i>&#160;&#160;海南&#160;<b>31°</b><i class="wi-Celsius"></i>&#160;; </li><li><i class="wi-day-lightning"></i>&#160;&#160;四川&#160;<b>29°</b><i class="wi-Celsius"></i>&#160;; </li></ul></div><ul style="margin-right:0;" class="nav navbar-nav navbar-right"><li><a data-toggle="dropdown" class="dropdown-toggle" href="#"><img alt="" class="admin-pic img-circle" src="http://api.randomuser.me/portraits/thumb/men/10.jpg">欢迎您 <b class="caret"></b></a><ul style="margin-top:14px;" role="menu" class="dropdown-setting dropdown-menu"><li><a href="#"><span class="entypo-user"></span>&#160;&#160;我的账户</a></li><li><a href="#"><span class="entypo-vcard"></span>&#160;&#160;账户设置</a></li><li><a href="#"><span class="entypo-lifebuoy"></span>&#160;&#160;帮助</a></li><li class="divider"></li><li><a href="/logout"><span class="entypo-user"></span>&#160;&#160; 退出账户</a></li></ul></li><li><a data-toggle="dropdown" class="dropdown-toggle" href="#"><span class="icon-gear"></span>&#160;&#160;背景颜色</a><ul role="menu" class="dropdown-setting dropdown-menu"><li class="theme-bg"><div id="button-bg"></div><div id="button-bg2"></div><div id="button-bg3"></div><div id="button-bg5"></div><div id="button-bg6"></div><div id="button-bg7"></div><div id="button-bg8"></div><div id="button-bg9"></div><div id="button-bg10"></div><div id="button-bg11"></div><div id="button-bg12"></div><div id="button-bg13"></div></li></ul></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid --></nav><!-- /END OF TOP NAVBAR --><!-- SIDE MENU --><div id="skin-select"><div id="logo"><h1>IMUT ATM<span>v2.2.7</span></h1></div><a id="toggle"><span class="entypo-menu"></span></a><div class="dark"><form action="#"><span><input type="text" name="search" value="" class="search rounded id_search" placeholder="Search Menu..." autofocus=""></span></form></div><div class="search-hover"><form id="demo-2"><input type="search" placeholder="Search Menu..." class="id_search"></form></div><div class="skin-part"><div id="tree-wrap"><div class="side-bar"><ul class="topnav menu-left-nest"><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserIndex.jsp" title="Profile Page"><i class="icon-user"></i><span>用户信息</span></a></li><li><a class="tooltip-tip" href="/changepage/UserChangePwd.jsp" title="Extra Pages"><i class="icon-lock"></i><span>修改密码</span></a><li><a class="tooltip-tip2 ajax-load" href="/UserSerch" title="Blank Page"><i class="icon-media-record"></i><span>查询余额</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserStore.jsp" title="Invoice"><i class="entypo-newspaper"></i><span>存款</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserFetch.jsp" title="Pricing Table"><i class="fontawesome-money"></i><span>取款</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserTransfer.jsp" title="Time Line"><i class="entypo-clock"></i><span>转账</span></a></li><li><a class="tooltip-tip2" href="/serchDetaile" title="404 Error Page"><i class="icon-preview"></i><span>交易明细</span></a></li><li><a class="tooltip-tip2" href="/logout" title="login.jsp"><i class="icon-mail"></i><span>退卡</span></a></li></ul></div></div></div></div><!-- END OF SIDE MENU --><!--  PAPER WRAP --><div class="wrap-fluid"><div class="container-fluid paper-wrap bevel tlbr"><!-- CONTENT --><!--TITLE --><div class="row"><div id="paper-top"><div class="col-sm-3"><h2 class="tittle-content-header"><span class="entypo-clock"></span><span>转账</span></h2></div></div></div><!--/ TITLE --><!-- BREADCRUMB --><ul id="breadcrumb"><li><span class="entypo-home"></span></li><li><i class="fa fa-lg fa-angle-right"></i></li><li><a href="#" title="Sample page 1">首页</a></li><li><i class="fa fa-lg fa-angle-right"></i></li><li><a href="#" title="Sample page 1">转账</a></li></ul><!-- END OF BREADCRUMB --><div class="row"><div class="col-sm-12"><!-- BLANK PAGE--><div class="nest" id="Blank_PageClose"><div class="title-alt"><h6>当前账户余额</h6></div><div class="body-nest" id="Blank_Page_Content"><div class="form_center"><form action="/UserTransfer" id="contact-form" class="form-horizontal" method="post"><fieldset><table width="10%" border='2'><tr align="center"><br><!-- <th><font size="4" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当&nbsp;&nbsp;前&nbsp;&nbsp;余&nbsp;&nbsp;额&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></th> --></tr><tr align="center"></tr></table><div class="form-actions" style="margin:20px 0 0 0;"><div class="control-group"><label class="control-label" for="account">请输入要转账的卡号</label><div class="controls"><input type="text" class="form-control" name="transferIn" id="account"><br><label class="control-label" for="get">请输入要转入的金额(不得大于当前账户余额)</label><input type="text" class="form-control" name="transferNum" id="get"></div></div><p style="color:red;font-size: 14px" >${error4}</p><br><button type="submit" class="btn btn-primary" onclick="alert('确认转账吗?')">确认</button><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>              </fieldset></form></div></div></div></div><!-- END OF BLANK PAGE --></div><!-- /END OF CONTENT --><!-- FOOTER --><div class="footer-space"></div><div id="footer"><div class="devider-footer-left"></div><div class="time"><p id="spanDate"><p id="clock"></div><div class="copyright">本网站基于百度查询开发 <a href="http://www.baidu.com/" title="百度" target="_blank">百度</a> All Rights Reserved</div><div class="devider-footer"></div></div><!-- / END OF FOOTER --></div></div><!--  END OF PAPER WRAP --><!-- RIGHT SLIDER CONTENT --><!-- END OF RIGHT SLIDER CONTENT--><!-- MAIN EFFECT --><script type="text/javascript" src="assets/js/preloader.js"></script><script type="text/javascript" src="assets/js/bootstrap.js"></script><script type="text/javascript" src="assets/js/app.js"></script><script type="text/javascript" src="assets/js/load.js"></script><script type="text/javascript" src="assets/js/main.js"></script></body></html>

测试一下效果,发现功能实现啦~

 接下来我们实现转账跳转的操作:

package com.atm.servlet;import com.atm.pojo.RunMessage;
import com.atm.pojo.User;
import com.atm.service.RunMessageService;
import com.atm.service.UserService;
import com.atm.service.impl.RunMessageServiceImpl;
import com.atm.service.impl.UserServiceImpl;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;//用户转账
@WebServlet("/UserTransfer")
public class UserTransferServlet extends HttpServlet {private UserService userService=new UserServiceImpl();private RunMessageService runMessageService=new RunMessageServiceImpl();@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取相关参数String icno =request.getParameter("transferIn");int money=Integer.parseInt(request.getParameter("transferNum"));//做出相应的业务数据判断//先判断账户是否存在User user=null;try {user = userService.getUserByIcno(icno);if(user==null){request.getSession().setAttribute("error4","转账的账户不存在");response.sendRedirect("/changepage/UserTransfer.jsp");}}catch (Exception e){e.printStackTrace();}//判断转账的金额//查询当前用户的余额//拿到当前用户信息user = (User) request.getSession().getAttribute("ua");double balance = 0;try {balance = userService.getBalance(user.getIcno());} catch (Exception e) {e.printStackTrace();}if (money == 0) {request.getSession().setAttribute("error4", "转账金额不能为0");response.sendRedirect("changepage/UserTransfer.jsp");} else if (money % 100 != 0) {request.getSession().setAttribute("error4", "转账金额必须为100的倍数");response.sendRedirect("changepage/UserTransfer.jsp");} else if (money > 10000) {request.getSession().setAttribute("error4", "单次转账金额不能大于10000");response.sendRedirect("changepage/UserTransfer.jsp");} else if (money > balance) {request.getSession().setAttribute("error4", "余额不足");response.sendRedirect("changepage/UserTransfer.jsp");}//执行转账操作try {//转出:取款userService.fetchMoney(money,user.getIcno());//保存交易记录SimpleDateFormat sdf=new SimpleDateFormat("YYYY-MM-dd hh:mm:ss");//查询当前最新的账户余额double rest= userService.getBalance(user.getIcno());RunMessage runMessage =new RunMessage();runMessage.setIcno(user.getIcno());runMessage.setRm_currency("人民币");runMessage.setRm_date(sdf.format(new Date()));runMessage.setRm_balance(-Double.valueOf(money));runMessage.setRm_rest(rest);//保存交易记录runMessageService.addRunMessage(runMessage);//转入:存款userService.storeMoney(money,icno);//保存交易记录//查询当前最新的账户余额double restIn= userService.getBalance(icno);runMessage.setIcno(icno);runMessage.setRm_currency("人民币");runMessage.setRm_date(sdf.format(new Date()));runMessage.setRm_balance(Double.valueOf(money));runMessage.setRm_rest(restIn);//保存交易记录runMessageService.addRunMessage(runMessage);response.sendRedirect("/changepage/TransferSucc.jsp");} catch (Exception e) {request.getSession().setAttribute("error4", "转账失败");response.sendRedirect("changepage/UserTransfer.jsp");throw new RuntimeException(e);}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}}

也是同样的,对前端页面进行修改:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8"><title>Apricot 1.3</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content=""><meta name="author" content=""><meta http-equiv="refresh" content="3;url=/changepage/UserIndex.jsp"><!-- Le styles --><script type="text/javascript" src="assets/js/jquery.min.js"></script><link rel="stylesheet" href="assets/css/style.css"><link rel="stylesheet" href="assets/css/loader-style.css"><link rel="stylesheet" href="assets/css/bootstrap.css"><link href="assets/css/icons-style.css" rel="stylesheet"><!-- HTML5 shim, for IE6-8 support of HTML5 elements --><!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--><!-- Fav and touch icons --><link rel="shortcut icon" href="assets/ico/minus.png">
</head><body><!-- Preloader --><div id="preloader"><div id="status">&nbsp;</div></div><!-- TOP NAVBAR --><nav role="navigation" class="navbar navbar-static-top"><div class="container-fluid"><!-- Brand and toggle get grouped for better mobile display --><div class="navbar-header"><button data-target="#bs-example-navbar-collapse-1" data-toggle="collapse" class="navbar-toggle" type="button"><span class="entypo-menu"></span></button><button class="navbar-toggle toggle-menu-mobile toggle-left" type="button"><span class="entypo-list-add"></span></button><div id="logo-mobile" class="visible-xs"><h1>ATM机后台信息管理系统<span>v1.0</span></h1></div></div><!-- Collect the nav links, forms, and other content for toggling --><div id="bs-example-navbar-collapse-1" class="collapse navbar-collapse"><ul class="nav navbar-nav"><li class="dropdown"><ul style="margin: 11px 0 0 9px;" role="menu" class="dropdown-menu dropdown-wrap"></ul></li><li><a href="#"><i data-toggle="tooltip" data-placement="bottom" title="Help" style="font-size:20px;" class="icon-help tooltitle"></i></a></li></ul><div id="nt-title-container" class="navbar-left running-text visible-lg"><ul id="digital-clock" class="digital"><div id="time"><script>document.getElementById('time').innerHTML = new Date().toLocaleString()+ ' 星期' + '日一二三四五六'.charAt(new Date().getDay());setInterval("document.getElementById('time').innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());",1000);</script>
</div></ul><ul id="nt-title"><li><i class="wi-day-lightning"></i>&#160;&#160;北京&#160;<b>24°</b><i class="wi-Celsius"></i>&#160;; </li><li><i class="wi-day-lightning"></i>&#160;&#160;上海&#160;<b>28°</b><i class="wi-Celsius"></i>&#160;;</li><li><i class="wi-day-lightning"></i>&#160;&#160;内蒙古&#160;<b>26°</b><i class="wi-Celsius"></i>&#160;;</li><li><i class="wi-day-lightning"></i>&#160;&#160;海南&#160;<b>31°</b><i class="wi-Celsius"></i>&#160;; </li><li><i class="wi-day-lightning"></i>&#160;&#160;四川&#160;<b>29°</b><i class="wi-Celsius"></i>&#160;; </li></ul></div><ul style="margin-right:0;" class="nav navbar-nav navbar-right"><li><a data-toggle="dropdown" class="dropdown-toggle" href="#"><img alt="" class="admin-pic img-circle" src="http://api.randomuser.me/portraits/thumb/men/10.jpg">欢迎您 <b class="caret"></b></a><ul style="margin-top:14px;" role="menu" class="dropdown-setting dropdown-menu"><li><a href="#"><span class="entypo-user"></span>&#160;&#160;我的账户</a></li><li><a href="#"><span class="entypo-vcard"></span>&#160;&#160;账户设置</a></li><li><a href="#"><span class="entypo-lifebuoy"></span>&#160;&#160;帮助</a></li><li class="divider"></li><li><a href="http://themeforest.net/item/apricot-navigation-admin-dashboard-template/7664475?WT.ac=category_item&WT.z_author=themesmile"><span class="entypo-user"></span>&#160;&#160; 退出账户</a></li></ul></li><li><a data-toggle="dropdown" class="dropdown-toggle" href="#"><span class="icon-gear"></span>&#160;&#160;背景颜色</a><ul role="menu" class="dropdown-setting dropdown-menu"><li class="theme-bg"><div id="button-bg"></div><div id="button-bg2"></div><div id="button-bg3"></div><div id="button-bg5"></div><div id="button-bg6"></div><div id="button-bg7"></div><div id="button-bg8"></div><div id="button-bg9"></div><div id="button-bg10"></div><div id="button-bg11"></div><div id="button-bg12"></div><div id="button-bg13"></div></li></ul></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid --></nav><!-- /END OF TOP NAVBAR --><!-- SIDE MENU --><div id="skin-select"><div id="logo"><h1>ATM机后台信息管理系统<span>v1.0</span></h1></div><a id="toggle"><span class="entypo-menu"></span></a><div class="dark"><form action="#"><span><input type="text" name="search" value="" class="search rounded id_search" placeholder="Search Menu..." autofocus=""></span></form></div><div class="search-hover"><form id="demo-2"><input type="search" placeholder="Search Menu..." class="id_search"></form></div><div class="search-hover"><form id="demo-2"><input type="search" placeholder="Search Menu..." class="id_search"></form></div><div class="skin-part"><div id="tree-wrap"><div class="side-bar"><ul class="topnav menu-left-nest"></ul><ul class="topnav menu-left-nest"><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserIndex.jsp" title="Profile Page"><i class="icon-user"></i><span>用户信息</span></a></li><li><a class="tooltip-tip" href="/changepage/UserChangePwd.jsp" title="Extra Pages"><i class="icon-lock"></i><span>修改密码</span></a><li><a class="tooltip-tip2 ajax-load" href="/UserSerch" title="Blank Page"><i class="icon-media-record"></i><span>查询余额</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserStore.jsp" title="Invoice"><i class="entypo-newspaper"></i><span>存款</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserFetch.jsp" title="Pricing Table"><i class="fontawesome-money"></i><span>取款</span></a></li><li><a class="tooltip-tip2 ajax-load" href="/changepage/UserTransfer.jsp" title="Time Line"><i class="entypo-clock"></i><span>转账</span></a></li><!--     <li><a class="tooltip-tip2" href="/changepage/UserDetaile.jsp" title="404 Error Page"><i class="icon-preview"></i><span>转账成功</span></a></li> --><li><a class="tooltip-tip2" href="/changepage/login.jsp" title="login.jsp"><i class="icon-mail"></i><span>退卡</span></a></li></ul></div></div></div></div><!-- END OF SIDE MENU --><!--  PAPER WRAP --><div class="wrap-fluid"><div class="container-fluid paper-wrap bevel tlbr"><!-- CONTENT --><!--TITLE --><div class="row"><div id="paper-top"><div class="col-sm-3"><h2 class="tittle-content-header"><span class="icon-preview"></span><span>转账成功</span></h2></div></div></div><!--/ TITLE --><!-- BREADCRUMB --><ul id="breadcrumb"><li><span class="entypo-home"></span></li><li><h5>转账成功</h5></li></ul><!-- END OF BREADCRUMB --><div class="content-wrap"><div class="row"><div class="col-sm-12"><!-- BLANK PAGE--><!--    <div class="nest" id="Blank_PageClose"> --><!--   <div class="title-alt"> --><div align="center"><h1>转账成功	3s后自动跳转回主页... ...</h1></div><br><br><br><br><br><br><div align="right"><h4>如果没有跳转,请点击<a href="/changepage/UserIndex.jsp">跳转</a></h4><!-- </div> --><!--  </div> --><div class="body-nest" id="Blank_Page_Content"><div class="form_center"></div></div></div></div><!-- END OF BLANK PAGE --></div><!-- /END OF CONTENT --><!-- FOOTER --><div class="footer-space"></div><div id="footer"><div class="devider-footer-left"></div><div class="time"><p id="spanDate"><p id="clock"></div><div class="copyright">本网站基于百度查询开发 <a href="http://www.baidu.com/" title="百度" target="_blank">百度</a> All Rights Reserved</div><div class="devider-footer"></div></div><!-- / END OF FOOTER --></div></div><!--  END OF PAPER WRAP --><!-- RIGHT SLIDER CONTENT --><div class="sb-slidebar sb-right"><div class="right-wrapper"><div class="row"><h3><span><i class="entypo-gauge"></i>&nbsp;&nbsp;MAIN WIDGET</span></h3><div class="col-sm-12"><div class="widget-knob"><span class="chart" style="position:relative" data-percent="86"><span class="percent"></span></span></div><div class="widget-def"><b>Distance traveled</b><br><i>86% to the check point</i></div><div class="widget-knob"><span class="speed-car" style="position:relative" data-percent="60"><span class="percent2"></span></span></div><div class="widget-def"><b>The average speed</b><br><i>30KM/h avarage speed</i></div><div class="widget-knob"><span class="overall" style="position:relative" data-percent="25"><span class="percent3"></span></span></div><div class="widget-def"><b>Overall result</b><br><i>30KM/h avarage Result</i></div></div></div></div><div style="margin-top:0;" class="right-wrapper"><div class="row"><h3><span><i class="entypo-chat"></i>&nbsp;&nbsp;CHAT</span></h3><div class="col-sm-12"><span class="label label-warning label-chat">Online</span><ul class="chat"><li><a href="#"><span><img alt="" class="img-chat img-circle" src="http://api.randomuser.me/portraits/thumb/men/20.jpg"></span><b>Dave Junior</b><br><i>Last seen : 08:00 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-circle" src="http://api.randomuser.me/portraits/thumb/men/21.jpg"></span><b>Kenneth Lucas</b><br><i>Last seen : 07:21 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-circle" src="http://api.randomuser.me/portraits/thumb/men/22.jpg"></span><b>Heidi Perez</b><br><i>Last seen : 05:43 PM</i></a></li></ul><span class="label label-chat">Offline</span><ul class="chat"><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/men/23.jpg"></span><b>Dave Junior</b><br><i>Last seen : 08:00 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/women/24.jpg"></span><b>Kenneth Lucas</b><br><i>Last seen : 07:21 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/men/25.jpg"></span><b>Heidi Perez</b><br><i>Last seen : 05:43 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/women/25.jpg"></span><b>Kenneth Lucas</b><br><i>Last seen : 07:21 PM</i></a></li><li><a href="#"><span><img alt="" class="img-chat img-offline img-circle" src="http://api.randomuser.me/portraits/thumb/men/26.jpg"></span><b>Heidi Perez</b><br><i>Last seen : 05:43 PM</i></a></li></ul></div></div></div></div><!-- END OF RIGHT SLIDER CONTENT--><!-- MAIN EFFECT --><script type="text/javascript" src="assets/js/preloader.js"></script><script type="text/javascript" src="assets/js/bootstrap.js"></script><script type="text/javascript" src="assets/js/app.js"></script><script type="text/javascript" src="assets/js/load.js"></script><script type="text/javascript" src="assets/js/main.js"></script></div></body></html>

效果测试:

实现代码已上传~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/9651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript逻辑运算符

not运算符&#xff08;!&#xff09; 反着来and运算符&#xff08;&&&#xff09; 全true才trueor运算符&#xff08;||&#xff09; 全false才false 举例 const hasDriversLicense true; const Drinking false;console.log(hasDriversLicense && Drinking…

7. Spring Boot 配置文件

目录 1. 配置文件作用 2. 配置文件格式 3. properties 配置文件说明 3.1 properties 基本语法 3.2 读取配置文件 3.3 缺点 4. yml 配置文件说明 4.1 properties 基本语法 4.2 读取配置文件 4.3 yml 配置不同的数据类型 布尔值 整数值 null 值 配置对象 配置集合 …

SpringBoot集成kafka全面实战

本文是SpringBootKafka的实战讲解&#xff0c;如果对kafka的架构原理还不了解的读者&#xff0c;建议先看一下《大白话kafka架构原理》、《秒懂kafka HA&#xff08;高可用&#xff09;》两篇文章。 一、生产者实践 普通生产者 带回调的生产者 自定义分区器 kafka事务提交…

第三大的数

414、第三大的数 class Solution {public int thirdMax(int[] nums) {Arrays.sort(nums);int tempnums[0];int ansnums[0];int count 0;// if(nums.length<3){// return nums[nums.length-1];// }// else {for(int inums.length-1;i>0;i--){if (nums[i]>nums[i…

安防监控视频汇聚平台EasyCVR修改录像计划等待时间较长是什么原因?

安防监控视频EasyCVR视频融合汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检…

UI设计工具都有哪些好用的推荐?

对于UI设计的初学者来说&#xff0c;掌握一个实用且易于使用的界面UI软件是非常重要的。今天&#xff0c;我整理了四个易于使用的界面UI软件。让我们看看。 即时设计 即时设计是一款免费的在线 UI 设计工具&#xff0c;无系统限制&#xff0c;浏览器打开即可使用&#xff0c;…

如何使用 After Effects 导出摄像机跟踪数据到 3ds Max

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 在本教程中&#xff0c;我将展示如何在After Effects中跟踪实景场景&#xff0c;然后将相机数据导出到3ds Max。 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合…

Python - Opencv应用实例之树叶自动分割、标签及统计分析系统

Python - Opencv应用实例之树叶自动分割、标签及统计分析系统 本文通过Python+opencv 实现这样的需求:输出位置和角度(x, y, r),并标记出轮廓基于传统图像处理算法实现,算法原理:输入图像 -> 灰度化 -> 二值化 -> 形态学处理 -> 轮廓提取 -> 树叶中心定位 -…

window10脚本转服务教程

先说下脚本/我们启动的一些三方服务转window本机服务目前我了解到的好处 一键设置开机自启、随用随启、延时自启解决一些服务类应用启动后会阻塞当前dos窗口导致桌面一直要开着的问题脚本化服务注册&#xff0c;方便管理&#xff0c;统一运维… 1. 实践涉及内容介绍 编写好的…

YOLOV8最强操作教程.

YoloV8详细训练教程. 相信各位都知道yolov8发布了&#xff0c;也是U神大作&#xff0c;而且V8还会出论文喔&#xff01; 2023.1.17 更新 yolov8-grad-cam热力图可视化链接 2023.1.20 更新 YOLOV8改进-添加EIoU,SIoU,AlphaIoU,FocalEIoU 链接 2023.1.30 更新 如果你需要修改或者…

最新Ai创作源码ChatGPT商用运营源码/支持GPT4.0+支持ai绘画+支持Mind思维导图生成

本系统使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到本系统&#xff01; 支持GPT3模型、GPT4模型Midjourney专业绘画&#xff08;全自定义调参&#xff09;、Midjourney以图生图、Dall-E2绘画Mind思维导图生成应用工作台&#xff08;Prompt&#xff09;AI绘画广场自定…

基于Spring包扫描工具和MybatisPlus逆向工程组件的数据表自动同步机制

公司产品产出的项目较多。同步数据库表结构工作很麻烦。一个alter语句要跑到N个客户机上执行脚本。超级费时麻烦。介于此&#xff0c;原有方案是把增量脚本放到一resource包下&#xff0c;项目启动时执行逐行执行一次。但由于模块开发人员较多&#xff0c;总有那么一两个机灵鬼…

高电压放大器ATA-2021B技术指标

随着ATA-2021H高压放大器的升级改版&#xff0c;新品ATA-2021B高电压放大器走进了更多工程师、研究人员的视野。相比于升级之前&#xff0c;ATA-2021B高压放大器拥有了更多更好地优势&#xff0c;可以更好地的帮助研究人员高效完成测试项目。今天Aigtek小编就带大家了解一下关于…

windos 服务器设置指定ip访问指定端口,其他ip不能访问

需求&#xff1a;设置指定ip访问指定端口&#xff0c;其他ip不能访问 一&#xff0c;禁止所有ip访问 需要打开IP安全策略 或者winR 输入secpol.msc 1.先创建一个ip安全策略 2.点击添加&#xff0c;不使用添加向导&#xff0c;建一个安全策略 继续点添加 二&#xff0c;放开需…

苍穹外卖 Spring Task 来单提醒 催单Apache ECharts day10~11

苍穹外卖-day10 课程内容 Spring Task订单状态定时处理WebSocket来单提醒客户催单 功能实现&#xff1a;订单状态定时处理、来单提醒和客户催单 订单状态定时处理&#xff1a; 来单提醒&#xff1a; 客户催单&#xff1a; 1. Spring Task 1.1 介绍 Spring Task 是Spring框架提供…

【chatGpt】关于websocket连接中对未授权的捕捉问题

目录 问题 有效提问 有效的细节提问 问题 一路上&#xff0c;通过简单的error进行判断弹出授权&#xff0c;会有很多乱弹的现象&#xff1a; &#xff08;1&#xff09;链路正常切换会断 &#xff08;2&#xff09;服务器没有启动会连接不上 &#xff08;3&#xff09;没…

Python pygame(GUI编程)模块最完整教程(7)

上一篇文章&#xff1a; Python pygame(GUI编程)模块最完整教程&#xff08;6&#xff09;_Python-ZZY的博客-CSDN博客 总目录&#xff1a; README.md Python-ZZY/Python-Pygame最完整教程 - Gitee.com 21 OpenGL与Pygame 不会OpenGL的读者可以跳过本章节。 21.1 OpenGL简…

CRM系统化整合从N-1做减法实践 | 京东物流技术团队

1 背景 京销易系统已经接入大网、KA以及云仓三个条线商机&#xff0c;每个条线商机规则差异比较大&#xff0c;当前现状是独立实现三套系统分别做支撑。 2 目标 2022年下半年CRM目标是完成9个新条线业务接入&#xff0c;完成销售过程线上化&#xff0c;实现销售规则统一。 …

js版计算比亚迪行驶里程连续12个月计算不超3万公里改进版带echar

<!DOCTYPE html> <html lang"zh-CN" style"height: 100%"> <head> <meta charset"utf-8" /> <title>连续12个月不超3万公里计算LIGUANGHUA</title> <style> .clocks { …

计算机组成原理问答5

CPU CPU两大核心部件&#xff1a;运算器控制器 运算器的核心&#xff1a;ALU&#xff08;算数逻辑单元&#xff09;&#xff0c;功能&#xff1a;对数据进行加工。基本结构&#xff1a;ALU、暂存寄存器、通用寄存器组、累加寄存器ACC、程序状态寄存器PSW、移位器、计数器。 …