zoukankan      html  css  js  c++  java
  • MVC分层

    题目:客户端给出一个月薪数字过来,服务器进行计算,算一下个人所得税是多少钱,然后显示给客户端看。

    垃圾代码

    1、  先建一个index.jsp

    a. 接受收入income 数字

    b. 开始计算税费

    1. 显示结果

     

    在url输出

    //http://localhost:8080/test014/index.jsp?income=10000

     

    jsp文件中打如下代码:

    //第一步:接受客户端的参数

    String income_str = request.getParameter("income");

    float income = Float.parseFloat(income_str);

     

    //第二步:处理业务逻辑

    float tax_income = income - 3500;//应交所得税的金额

    float tax = tax_income*0.2f-555;

    //第三步:输出结果

    %>

    应交税款<%=tax %>

     

    思考:

    1、  实体是Tax

    2、  分层 M ,V , C

     

    第一步:先建立实体类Tax.java

    第二步:做数据库的操作(这个例子没有,跳过)

    第三步:写业务逻辑的代码

    1. 先写接口(定义一下有什么方法)

    2. 写实现类

    第四步:写控制器

    (接受客户端的请求参数,调用M,跳转到v)

    建立一个TaxAction.java

    (控制器用Servlet替代jsp,它没有任何html代码)

    a. 控制器接受客户端的请求,获取客户端传递的参数

    b. 调用业务逻辑的控件,进行计算,得到结果。

    1. 把结果放在request的属性中,然后把请求转发给view层

     

    第五步:编写view层jsp页面,用于显示结果。

    (view层没有任何的java代码)

     

    jsp收税案例:

    首先创建一个jsp文件

    然后在src中创建四个包entity、action、dao、service

    然后在entity中创建一个实体类TAX

    public class Tax {
     private float income;//收入
     private float taxRate;//税率
     private float qcd;//速算扣除数
     private float taxDue;//应交税金
     
     
     public float getIncome() {
      return income;
     }
     public void setIncome(float income) {
      this.income = income;
     }
     public float getTaxRate() {
      return taxRate;
     }
     public void setTaxRate(float taxRate) {
      this.taxRate = taxRate;
     }
     public float getQcd() {
      return qcd;
     }
     public void setQcd(float qcd) {
      this.qcd = qcd;
     }
     public float getTaxDue() {
      return taxDue;
     }
     public void setTaxDue(float taxDue) {
      this.taxDue = taxDue;
     }
     
    }    

     

    然后在action中创建一个servlet类:TaxAction

    public class TaxAction extends HttpServlet {

     
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //第一步:获取参数
      String income_str=request.getParameter("income");
      float income=Float.parseFloat(income_str);
      
      //第二步:调用各种业务逻辑
      TaxService ts=new TaxServiceimpl();
      Tax tax=ts.calcTax(income, 0.2f, 555);
      
      //第三步:请求转发给tax.jsp显示结果
      request.setAttribute("tax", tax);
      request.getRequestDispatcher("tax.jsp").forward(request, response);
     }
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      doGet(request, response);
      
     }
    }
     
     
    然后在service类中创建一个接口TaxService:
    public interface TaxService {
     public  Tax calcTax(float income,float taxRate,float qcd);
     
    }

     

    然后创建一个类:TaxServiceimpl:

     

    public class TaxServiceimpl implements TaxService {
     @Override
     public Tax calcTax(float income, float taxRate, float qcd) {
      // TODO Auto-generated method stub
      Tax t=new Tax();
      t.setIncome(income);
      t.setTaxRate(taxRate);
      t.setQcd(qcd);
      
      if(income<=3500){
      t.setTaxDue(0);
       
      }else{
       t.setTaxDue(  (income-3500)*0.2f-qcd  );
       
      }
      return t;
     }
    }

     

     最后在tax.jsp中打入如下代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    您的收入:${tax.income}<br>
    税率:${tax.taxRate} <br>
    速算和除数:${tax.qcd} <br>
    应交税金:${tax.taxDue} <br>
    </body>
    </html>

     

     

    然后运行,在url中打入如下代码:

    http://localhost:8080/test015/TaxAction?income=10000

    即可完成!

  • 相关阅读:
    Android NDK 学习之传递类对象
    https://www.aminer.cn/ AI研究
    MYSQL 的一些文件及说明
    Windows下移动MariaDB数据目录 (转!)
    MariaDB Galera Cluster 10.1 只支持 LINUX ?!
    MARIADB 在 OPENSUSE 的安装。
    “命令行程序”的通用图形界面 (转)
    代码生成的地址:mygeneration
    上海力软--快速开发框架
    康力优蓝机器人 -- 优友U05类人型机器人发布
  • 原文地址:https://www.cnblogs.com/wudashuai/p/9205538.html
Copyright © 2011-2022 走看看