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???)

关键代码

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.0(JSP+Servlet+MySQL)

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

随机推荐

  1. LeetCode() Symmetric Tree

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  2. SHOI 2009 会场预约 平衡树 STL练习

    题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一个 ...

  3. ASP.NET MVC5 实现网址伪静态

    一.路由规则: routes.MapRoute( name: "Default1", url: "more_{root}_{plate}.html", defa ...

  4. it市场

    SAP收购Sybase意欲何为 http://tech.diannaodian.com/dw/data/sybase/2012/0925/199681.html 德国行业管理软件解决方案提供商SAP宣 ...

  5. [linux]解决vsftpd 读取目录列表失败的问题

    使用第三方FTP软件filezilla进行登陆,出现如下错误:状态:    正在连接 192.168.1.6:21...状态:    连接建立,等待欢迎消息...响应:    220 (vsFTPd ...

  6. Ninject使用介绍

    #region 第二种写法 /// <summary> /// using(IKernel tKernel=new StandardKernel(new PeoKernelServer() ...

  7. 使用nvm安装node

    安装nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash 安装node nvm ...

  8. 强势回归,Linux blk用实力证明自己并不弱!

    Flash的出现把存储的世界搅翻了天,仿佛一夜之间发现了新大陆,所有旧世界的东西都变得笨拙.NVMe驱动义无反顾地抛弃了Linux blk,开发自己的队列管理. 当第一次看到NVMe重新使用Linux ...

  9. [SPI]SPI协议详解

    转自:https://my.oschina.net/freeblues/blog/67400 1.SPI协议简介 1.1.SPI协议概括 SPI,是英语Serial Peripheral interf ...

  10. 为linux普通用户添加超级用户权限sudo

    问题:假设用户名为:ali如果用户名没有超级用户权限,当输入 sudo + 命令 时, 系统提示: ali is not in the sudoers file.  This incident wil ...