java web实现简易收费站

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

java web实现简易收费站

今天肝代码了吗   2020-11-24 我要评论

一、目标

页面内输入车的类型和行驶公里数,可以得到该车的收费金额。
注:小汽车:每公里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代码)

四、代码

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>

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>

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);
 }
}

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 {

 }
}

上述仅部分代码

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们