java-web实现简易收费站(含代码)

文章目录

一、目标

页面内输入车的类型和行驶公里数,可以得到该车的收费金额。
注:小汽车:每公里5角。大巴车:每公里1元,营运税每次100元。

二、基础知识

JavaBeans的使用

  1. JavaWeb开发中常用JavaBeans来存放数据、封装业务逻辑等。JavaBeans最大的优点就是可以实现代码的重用。
  2. 作为JavaBeans使用的Java类需遵循三个规范:

1.JavaBeans应该是public类,并且具有无参数的public构造方法
2.JavaBeans类的成员变量一般被称为属性,对每个属性访问权限一般定义为private
3.每个属性通常定义两个public方法,一个是访问方法(getter),一个是修改方法(setter),使用它们访问和修改JavaBeans的属性值。

三、实现思路

  1. 输入页面:输入汽车类型和行驶公里,提交给servlet
  2. servlet:读取提交的数据,生成相应的汽车类类型(不能声明小汽车类型或大巴车)的对象,调用对象的收费方法,跳转到收费结果jsp。
  3. 结果显示页面:读取数据(javabean)的收费金额,显示结果(不能有任何脚本和java代码)

四、代码

  1. charge-select.jsp(输入界面)
<form action="vehicle.do" method="post">
    <table>
        <tr>
            <td>
                汽车类型:
            </td>
            <td>
                <select name="type">
                    <option value="0">--请选择--</option>
                    <option value="car">小汽车</option>
                    <option value="bus">大卡车</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>
                行驶里程/公里:
            </td>
            <td>
                <input type="text" name="mile"/>
            </td>
        </tr>
        <tr>
            <td>
                <input type="submit"/>
            </td>
            <td>
                <input type="reset"/>
            </td>
        </tr>
    </table>
</form>
  1. charge-result.jsp(显示金额界面)
//声明javabeans
<jsp:useBean id="v" type="charge.Vehicle" scope="request"/>
<html>
<head>
    <title>收费结果</title>
</head>
<body>
//javabeans的使用
    价格:<jsp:getProperty name="v" property="money"/>元
</body>
</html>

  1. Vehicle.java
package charge;
//Vehicle类
public abstract class Vehicle {
    private float mile;
    private float money;
    public abstract float count(float mile);
    public Vehicle(){};
    public Vehicle(float mile){
        this.mile = mile;
    }
    public float getMile() {
        return this.mile;
    }
    public float getMoney(){
        return this.money;
    }
    public void setMoney(float money){
        this.money = money;
    }
}
//Vehicle的子类Car
class Car extends Vehicle{
    private float mile;
    private float money;
    public Car(float mile) {
        super(mile);
    }
	//计算收费金额
    public float count(float mile){
        float price;
        price =(float) 0.5*this.getMile();
        return price;
    }
}
//Vehicle的子类Bus
class Bus extends Vehicle{
    private float mile;
    private float money;

    public Bus(float mile) {
        super(mile);
    }
	//计算收费金额
    public float count(float mile){
        return (float) (mile+100);
    }
}

  1. VehicleServlet.java(计算金额)
package charge;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "VehicleServlet",urlPatterns = "/vehicle.do")
public class VehicleServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html,charset=utf-8");
        //获取输入的信息
        String type = request.getParameter("type");
        float mile =Float.parseFloat(request.getParameter("mile"));
        float price=0;
        Vehicle v ;
        //分情况计算收费金额
        if(type.equals("car")){
            v = new Car(mile);
            price = v.count(mile);
            v.setMoney(price);
            request.setAttribute("v",v);
        }
        else if(type.equals("bus")){
            v = new Bus(mile);
            price = v.count(mile);
            v.setMoney(price);
            request.setAttribute("v",v);
        }
	    //转发
        RequestDispatcher dispatcher = request.getRequestDispatcher("/charge-result.jsp");
        dispatcher.forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

上述仅部分代码

本人原创,欢迎转载~

上一篇:04 车联网常见问题及解决方案


下一篇:Vehicle Spy3软件常用功能之报文录制和存储