jsp+servlet+mysql 實現簡單的銀行登入轉賬功能

來源:互聯網
上載者:User

標籤:redirect   慢慢   use   另一個   date()   boolean   form   商務邏輯   對象   

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 實現簡單的銀行登入轉賬功能

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.