jsp+servlet+mysql 实现简单的银行登录转账功能

时间:2022-12-09 16:27:59

jsp+servlet+mysql 实现简单的银行登录转账功能

【前期的准备】

html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)
先从一个登录页面开始(利用表单提交,action=“jsp实现页面”)
第一步:在(mysql)数据库中建表:
建立一个用户的基本信息表(用户姓名,密码,账户余额),用户转账(用户名,转账金额)的操作表
第二步:
登录页面:输入用户名和密码对数据库中的用户信息(login.jsp)进行验证(qq浏览器中有个书签里面登录成功验证,登录成功验证跳转的页面可以改成到另一个页面(里面包含可以看到自己的账户余额里面有多少钱,还有一个转账的链接)(login.jsp,back.jsp(登录失败),数据库处理类(DB1.java)(主要是验证用户名和密码,里面有一个方法boolean loginSucess(String username,String password)),servlet类(有dopost方法,里面主要构造数据库类的对象,调用里面的loginsucess方法,如果用户名和密码都没有错,利用response.sendRedirect则跳转到zhuangzhang.jsp))
登录之后的页面(转账的功能,):
主要是转账的功能:
{转账 :输入账号和密码后,能根据密码判断用户是否合法,然后再输入对方的转账账户,并判断对方的转账账户是否合法,如果合法,再输入转账的金额,并能判断转账金额是否超过了账户余额,如果转账金额合法,就对该账号的余额信息以及对方的账户余额信息进行更新}
{}部分是从网上看到的一段话,第二个转账部分的数据库处理类,可以写两个方法(1.判断方法(转出账户,转账金额,转入账户是否合法,这个方法的返回类型可以用boolean) 2.更新方法(对该账户的余额信息以及对方的账户余额信息,进行更新)
具体代码
boolean puanduan(String outuser,double cash,String inuser);
void update();
}
然后在servlet里面调用这两个方法。
转账链接到(转账的页面,(zhuanzhang.jsp)这个页面里面包含三个输入框:转出账户(outuser),转账金额(cash),转入账户(inuser)),然后还是编写一个数据库处理类(DB2.java):写一个方法dozz用来处理通过转账,实现转出账户金额减少cash,转入账户金额增加cash,具体的语句参看jdbc语句和mysql语句。然后还要写一个servlet类,还是通过dopost方法来获取zhuanzhang.jsp页面输入框里面的值,然后通过创建数据库类的方法来调用dozz方法实现其功能,然后response.sendRedirect跳转到一个页面(自己用户减少的页面done.jsp???)

关键代码

jsp+servlet+mysql 实现简单的银行登录转账功能

loginServlet.java

package servlet;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.websocket.Session;

import org.apache.jasper.tagplugins.jstl.core.Out;

import javax.servlet.http.HttpServlet;
import javabean.DB01;

public class LoginServlet extends HttpServlet{
static String userId;
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
userId = request.getParameter("id");
HttpSession session=request.getSession();
session.setAttribute("user", userId);
String password = request.getParameter("password");
DB01 db1 = new DB01();
boolean canLogin = db1.loginSuccess(userId,password);
if(canLogin){
response.sendRedirect("transfer.jsp");
}
else if(!canLogin){
response.sendRedirect("back.jsp");
}

}
public ServletConfig getServletConfig(){
return null;
}
public String getServletInfo(){
return null;
}
public void service(ServletRequest request,ServletResponse response) throws ServletException, IOException{
HttpServletRequest rq = (HttpServletRequest)request;
HttpServletResponse rs = (HttpServletResponse)response;
doPost(rq,rs);
}
public void destroy(){
System.out.println("DESTROY");
}
public void init(ServletConfig args0) throws ServletException{
System.out.println("init");
}
}

checkServlet.java

package servlet;
import javabean.DB02;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.websocket.Session;

import org.apache.jasper.tagplugins.jstl.core.Out;
import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;

import javax.servlet.http.HttpServlet;
import javabean.DB01;
import sun.text.resources.cldr.es.FormatData_es_419;

public class CheckServlet extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession();
String outId = (String)session.getAttribute("user");
String inId = request.getParameter("inid");
String cash0 = request.getParameter("cash");
DB02 db2 = new DB02();
boolean checkSuccess = db2.checkAndChangeUser(outId,cash0,inId);
if(checkSuccess){
System.out.println(outId);
System.out.println(inId);
response.sendRedirect("success.jsp");
}
else if(!checkSuccess){
response.sendRedirect("transfer.jsp");
}
}
public ServletConfig getServletConfig(){
return null;
}
public String getServletInfo(){
return null;
}
public void service(ServletRequest request,ServletResponse response) throws ServletException, IOException{
HttpServletRequest rq = (HttpServletRequest)request;
HttpServletResponse rs = (HttpServletResponse)response;
doPost(rq,rs);
}
public void destroy(){
System.out.println("DESTROY");
}
public void init(ServletConfig args0) throws ServletException{
System.out.println("init");
}
}

后期感想和总结

银行登录页面的总结

经过两周,不,也许只能说是用了一周左右的时间,因为前一周有比较多的事。还有一部分原因就是自己并不是太懂这方面的总体的知识架构,还有就是学长只是粗略的讲了一些基础的知识。然后自己就得开始写,只是实现简单的登录进去之后,实现用户的转账功能。

前期:
1.自己也在网上去查找了一些资料,关于jsp+servlet+mysql,实现简单的登录验证,还有,就是也怪自己之前暑假学习java没有学习和用过java.sql.*里面的一些接口,用来实现与数据库的连接,还有就是之前没怎么用过idea,然后前一周,怎么在idea里面引入数据库驱动包,也是问了学长和其他人才把它解决好,不过在解决之前这段时间,这个小小的银行登录转账,我都用eclipse开始写了,还好因为之前大多数时间都是用的eclipse,然后用起来也比较顺利,经过一些与数据库之间的小小的测试,还是证明引入数据库驱动包引入顺利。
2.自己前期也写了一个要做之前的可以称得上是小小的需求文档,不过感觉以前没有怎么写过这种,写起来也有点困难,所谓万事开头难,大概就是如此吧!
3.然后根据自己的需求文档,一步一实现功能,中间还是遇到了一几个比较伤脑筋的问题,困扰了我两天,百度也没百度出来,最后还是问的同学,相比较而言,自己学的进度还是有点慢。
4.还有一个问题就是,之前学习jsp的时候,忘了有一个东西,就是session对象,一般都是用来存储用户登录的用户名和密码,然后在多个页面之间互相使用,之前把这一点忘了,问题就比较大了,不是这个用户登录进去的用户,都可以在任意用户之间实现转账功能,所以,这个是个很严重的错误,所以,自己上网查查资料,看了看书,然后自己也比较了解了一些,然后就是通过登录,跳转到转账的页面,这个页面上面就只有,输入转账金额和转入用户。
5.然后自己又想了一下,一个用户肯定想知道自己账户里面到底有多少钱,所以,我后来又想了下,做了一个链接来查询自己账户的余额,然后再衡量自己转账的金额。

总结起来,就是自己如果只是想,而不去做,是没有任何收获的,所以,我每天不仅仅是看书,要多敲敲代码,哪怕是照着书敲,自己慢慢理解,然后再敲一遍,这样多多巩固,才能使自己的动手能力增强。
通过这次,简单的一个银行登录,让我还是学到了比较多的知识,jsp里面的几个常用的内置对象,还有java里面怎么连接数据库的代码,然后还有servlet里面的一些doPost方法,service方法,init方法,destroy方法,等等很多的知识,然后自己也收获了:要多从实践中去总结,bug要学会怎么调,港真,如果一个bug修复不好,真的会影响后面的很多事,还有就是,不要让自己的代码目录看起来太乱了,代码里面还是要做到精简整洁,如果有重复的代码,尽量写一个工具类来实现,分清层次还是很重要的。

jsp+servlet+mysql 实现简单的银行登录转账功能的更多相关文章

  1. (详细)Eclips+jsp+servlet+mysql+登录实例+源代码

    欢迎任何形式的转载,但请务必注明出处. 该教程较全,从软件的安装以及相关的环境配置我都放置了相关教程的链接,读者可直接点击进入.自己写电商网站作业时查找了很多资料,但都不是很全,所以趁着寒假写了这份教 ...

  2. Bootstrap+JSP实例学习笔记一.简单的带登录功能的首页

    前言 Bootstrap 是流行的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目.源自于twiteer内部的开发框架. 当前(2019-05)最新版本是v3.3. ...

  3. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  4. JSP+Servlet+mysql简单示例【图文教程】

    下载MYSQL:http://dev.mysql.com/downloads/ 下载安装版的 然后安装(安装步骤就不详细说了) 安装好之后,点击托盘图标,打开管理工具 创建一个数据库   数据库的名字 ...

  5. jsp+servlet+mysql简单实现用户登陆注册

    原码,项目中遇到的错误,解决方法,文章最后有链接可以获取 项目简介 *有的网友说在修改和删除时会触发error,建议各位不要去把用户名命名为中文! 功能描述 登陆,注册,用户一览表,修改,删除,添加, ...

  6. jsp/servlet/mysql/linux基本概念和操作

    一.什么是OOP编程? 面向对象,以结果为导向,并封装整个过程,并尽可能地增加代码的复用性和可扩展性...... 二.Junit? JUnit是一个java语言的单元测试框架.Junit测试时程序员测 ...

  7. Jsp+servlet+mysql搭建套路

    1.建立数据库根据需求建立相应的数据库确立数据库的字段.属性.主键等2.建立javaweb项目,搭建开发环境在开发环境的/WebRoot/WEB-INF下建立lib文件夹,存放需要使用的jar包常用的 ...

  8. jsp+servlet+mysql增删改查

    用的IntelliJ IDEA开发的,jdk1.8 1 首先是项目结构,如下图所示 2看各层的代码 首先是web.xml <?xml version="1.0" encodi ...

  9. 学生成绩管理系统3&period;0&lpar;JSP&plus;Servlet&plus;MySQL&rpar;

    源代码:戳这里! (2019-01-08 更新 惊讶于这么久了还有人看这个项目 于是把代码传到 github 了(辣鸡CSDN) https://github.com/G-lory/StudentAc ...

随机推荐

  1. Retrieving Out Params From a Stored Procedure With Python

    http://www.rodneyoliver.com/blog/2013/08/08/retrieving-out-params-from-a-stored-procedure-with-pytho ...

  2. backBarButtonItem 替换

    最上级vc里面加 下级设置生效 UIImage* image = [UIImage imageNamed:@"back_button.png"]; [item setBackBut ...

  3. 在&period;NET2&period;0中解析Json和Xml

    在.NET解析json有很多方法,这里介绍最简单也用的最多的一种. 一.添加引用 解析Json,先下载开源控件 Newtonsoft.Json.dll 下载地址:http://files.cnblog ...

  4. 【C&num;高级编程(学习与理解)】1&period;1 C&num;与&period;NET的关系

    1.C#语言不能孤立使用,而必须和.NET Framework一起考虑.C#编译器专门用于.NET,这表示用C#编写的所有代码总是在.NET Framework中运行. 2.C#就其本身而言只是一种语 ...

  5. Android开发系列(十八):自己定义控件样式在drawable目录下的XML实现

    在Android开发的过程中,我们常常须要对控件的样式做一下改变,能够通过用添加背景图片的方式进行改变,可是背景图片放多了肯定会使得APK文件变的非常大. 我们能够用自己定义属性shape来实现. s ...

  6. js数组(二)

    一.位置方法 indexOf()和laseIndexOf() indexOf是从数组的第0项开始向后查找,没有找到返回-1,要求使用=== var numbers = [1,2,3,4,5,4,3,2 ...

  7. Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。如何解决。

    摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复287或者20181128可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...

  8. storm入门基础实例(无可靠性保证实例)

    本实例为入门篇无可靠性保证实例,关于storm的介绍,以及一些术语名词等,可以参考Storm介绍(一).Storm介绍(二). 本案例是基于storm0.9.3版本 1.案例结构 案例:Word Co ...

  9. Confluence 6 尝试从 XML 备份中恢复时解决错误

    错误可能是因为数据库突然不可访问而产生.也有可能是你备份文件有问题,你需要找到你 XML 备份文件中违反数据库规定的记录修改这个记录后再创建一个新的 XML 备份: 在实例开始恢复的时候,请按照下面的 ...

  10. 最通熟易懂的Hadoop HDFS实践攻略

    HDFS是用来解决什么问题?怎么解决的? 如何在命令行下操作HDFS? 如何使用Java API来操作HDFS? 在了解基本思路和操作方法后,进一步深究HDFS具体的读写数据流程 学习并实践本文教程后 ...