jsp+mvc之ATM

这个小程序主要是加强对jsp+mvc的理解。

程序采用了Oracle数据库。其他的数据库,请自行修改数据库配置文件db.properties。

需要源程序的请微博关注TraCatche私信我,欢迎大家跟我一起讨论学习的问题。

我有各种ui设计视频,Android视频,java视频,还有各种的项目的视频。要的请私信

注:此程序只适用初学者,高手请关注我的其他文档,我会陆续把javaweb的基础到三大框架的小程序陆续发出来。

主要的逻辑代码都已粘出来了。

AtmDaoImpl

package com.wdf.newatm;

 

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Properties;

 

public class AtmDaoImpl implements AtmDao{

         privateConnection conn;

         PreparedStatementpstmt=null;

         Stringurl=null;

         Stringuname=null;

         Stringupass=null;

         StringdriverName=null;

         @Override

         publicvoid condb() {

                   //TODO Auto-generated method stub

                   init();

                   try{

                            Class.forName(driverName);

                            conn=DriverManager.getConnection(url,uname, upass);

                   }catch (ClassNotFoundException e) {

                            //TODO Auto-generated catch block

                            e.printStackTrace();

                   }catch (SQLException e) {

                            //TODO Auto-generated catch block

                            e.printStackTrace();

                            System.out.println("数据库异常");

                   }

                  

         }

 

         @Override

         publicvoid createPtmt(String sql) {

                   //TODO Auto-generated method stub

                   try{

                            pstmt=conn.prepareStatement(sql);

                   }catch (SQLException e) {

                            //TODO Auto-generated catch block

                            e.printStackTrace();

                   }

         }

 

         @Override

         publicint  update(Object... params) {

                   //TODO Auto-generated method stub

                   intlineNum=-1;

                   try{

                            for(inti=0;i<params.length;i++){

                                     pstmt.setObject(i+1,params[i]);

                            }

                            lineNum=pstmt.executeUpdate();

                   }catch (SQLException e) {

                            //TODO Auto-generated catch block

                            e.printStackTrace();

                   }

                   returnlineNum;

         }

 

         @Override

         publicResultSet query(Object... params) {

                   //TODO Auto-generated method stub

                   try{

                            for(inti=0;i<params.length;i++){

                                     pstmt.setObject(i+1,params[i]);

                            }

                            returnpstmt.executeQuery();

                   }catch (SQLException e) {

                            //TODO Auto-generated catch block

                            e.printStackTrace();

                   }

                   returnnull;

         }

         publicvoid init(){

                   Propertiespt=new Properties();

                   InputStreamis=AtmDaoImpl.class.getClassLoader().getResourceAsStream("db.properties");

                   try{

                            pt.load(is);

                            url=pt.getProperty("url"); 

                            uname=pt.getProperty("uname");

                            upass=pt.getProperty("upass");

                            driverName=pt.getProperty("drivername");

                   }catch (IOException e) {

                            //TODO Auto-generated catch block

                            e.printStackTrace();

                   }finally{

                            try{

                                     is.close();

                            }catch (IOException e) {

                                     //TODO Auto-generated catch block

                                     e.printStackTrace();

                            }

                   }

         }

         publicvoid closeConn(){

                   if(conn!=null){

                            try{

                                     conn.close();

                            }catch (SQLException e) {

                                     //TODO Auto-generated catch block

                                     e.printStackTrace();

                            }

                   }

         }

/*     publicvoid closeRs(){

                   if(rs!=null){

                            try{

                                     conn.close();

                            }catch (SQLException e) {

                                     //TODO Auto-generated catch block

                                     e.printStackTrace();

                            }

                   }

         }*/

         publicvoid closePstmt(){

                   if(pstmt!=null){

                            try{

                                     conn.close();

                            }catch (SQLException e) {

                                     //TODO Auto-generated catch block

                                     e.printStackTrace();

                            }

                   }

         }

 

 

 

}


Jsp的action

Atm.jsp

<%@ page language="java"contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

   <%@page import="com.wdf.newatm.AtmDaoImpl"%>

   <%@page import="java.sql.ResultSet"%>

    <%@page import="java.net.URLEncoder"%>

    <%@page import="com.wdf.newatm.ATMUser"%>

<!DOCTYPEhtml PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=utf-8">

<title>Insert title here</title>

</head>

<body>

<%

 request.setCharacterEncoding("utf-8");

 String status=request.getParameter("status");

 String err="";

 AtmDaoImpl atm=new AtmDaoImpl();

 atm.condb();

 if(status.equals("login")){

      String acc=request.getParameter("account");

       String pass=request.getParameter("password");

       atm.createPtmt("select * from atmuser where account=?");

       ResultSet rs=atm.query(acc);

       ATMUser user=null;

       if(rs.next()){

           if(rs.getString(3).equals(pass)){

               user=new ATMUser();

               user.setId(rs.getInt(1));

               user.setAccount(rs.getString(2));

               user.setPassword(rs.getString(3));

               user.setName(rs.getString(4));

               user.setMoney(rs.getDouble(5));

               session.setAttribute("user", user);

               response.sendRedirect("main.jsp");

           }else{

               err="密码不正确";

               err=URLEncoder.encode(err,"utf-8");

               response.sendRedirect("index.jsp?err="+err+"&acc="+acc);

           }

       }else{

           err="用户名不正确";

           err=URLEncoder.encode(err,"utf-8");

           response.sendRedirect("index.jsp?err="+err);

       }

       //request.setAttribute("err",err);

       rs.close();

       atm.closePstmt();

       atm.closeConn();

 }

 if(status.equals("register")){

      String account=request.getParameter("account");

        Stringpassowrd=request.getParameter("password");

        Stringr_password=request.getParameter("r_password");

        Stringname=request.getParameter("name");

        Stringsmoney=request.getParameter("money");

        if(account!=null && passowrd!=null && r_password!=null && name!=null){

            atm.createPtmt("insert into atmuser(account,password,name,money)values(?,?,?,?)");

            ATMUser user=null;

            if(passowrd.equals(r_password)){

                doublemoney=Double.parseDouble(smoney);

                if(atm.update(account,passowrd,name,money)!=-1){

                user=new ATMUser();

                user.setAccount(account);

                user.setPassword(passowrd);

                user.setName(name);

                user.setMoney(money);

                session.setAttribute("user", user);

                    response.sendRedirect("main.jsp");

                }else{

                response.sendRedirect("shibai.jsp");

                }

            }else{

                err="两次密码输入不一样";

                account=URLEncoder.encode(account,"utf-8");

                err=URLEncoder.encode(err,"utf-8");

                response.sendRedirect("register.jsp?err="+err+"&acc="+account);

            }

            atm.closePstmt();

            atm.closeConn();

        }else{

            err="用户名密码或名字不能为空";

            err=URLEncoder.encode(err,"utf-8");

            response.sendRedirect("register.jsp?err="+err);

        }

 }

 if(status.equals("savemoney")){

      String smoney=request.getParameter("smoney");

       if(smoney!=null){

            double money=Double.parseDouble(smoney);

            ATMUseruser = (ATMUser) session.getAttribute("user");

            double nmoney=user.getMoney();

            Stringaccount = user.getAccount();

            user.setMoney(nmoney+money);

            session.setAttribute("user", user);

            atm.createPtmt("UPDATE ATMUSER SET MONEY=MONEY+? WHERE ACCOUNT=?");

            int i=atm.update(money,account);

            if(i!=-1){

            err="操作成功";

            err=URLEncoder.encode(err,"utf-8");

            response.sendRedirect("savemoney.jsp?err="+err);

            }else{

             response.sendRedirect("shibai.jsp");

            }

            atm.closePstmt();

            atm.closeConn();

       }

 }

 if(status.equals("takemoney")){

      String tmoney=request.getParameter("tmoney");

       if(tmoney!=null){

            double money=Double.parseDouble(tmoney);

            ATMUseruser = (ATMUser) session.getAttribute("user");

            double smoney=user.getMoney();

            Stringaccount = user.getAccount();

            if(money<=smoney){

                user.setMoney(smoney-money);

                session.setAttribute("user", user);

                atm.createPtmt("UPDATE ATMUSER SET MONEY=MONEY-? WHERE ACCOUNT=?");

                int i=atm.update(money,account);

                if(i!=-1){

                err="操作成功";

                err=URLEncoder.encode(err,"utf-8");

                response.sendRedirect("takemoney.jsp?err="+err);

                }else{

                 response.sendRedirect("shibai.jsp");

                }

                atm.closePstmt();

            }else{

                err="当前余额"+smoney+",所取金额大于余额";

            err=URLEncoder.encode(err,"utf-8");

            response.sendRedirect("takemoney.jsp?err="+err);

            }

            atm.closeConn();

       }

 }

 

%>

</body>

</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值