java web实现简易收费站

 更新时间:2020年11月24日 08:59:09   作者:今天肝代码了吗  
这篇文章主要为大家详细介绍了java web实现简易收费站,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一

本文实例为大家分享了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代码)

四、代码

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 {

 }
}

上述仅部分代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java利用反射如何查找使用指定注解的类详解

    Java利用反射如何查找使用指定注解的类详解

    这篇文章主要给大家介绍了关于Java利用反射如何查找使用指定注解的类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • mybatis插入数据后返回自增主键ID的两种实现方式

    mybatis插入数据后返回自增主键ID的两种实现方式

    这篇文章主要介绍了mybatis插入数据后返回自增主键ID的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • spring boot集成smart-doc自动生成接口文档详解

    spring boot集成smart-doc自动生成接口文档详解

    这篇文章主要介绍了spring boot集成smart-doc自动生成接口文档详解,smart-doc是一款同时支持java restful api和Apache Dubbo rpc接口文档生成的工具,smart-doc颠覆了传统类似swagger这种大量采用注解侵入来生成文档的实现方法
    2022-09-09
  • java如何更改数据库中的数据

    java如何更改数据库中的数据

    这篇文章主要介绍了java如何更改数据库中的数据,修改数据库是数据库操作必不可少的一部分,使用Statement接口中的excuteUpdate()方法可以修改数据表中的数据,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • java 读取文件方法的总结

    java 读取文件方法的总结

    这篇文章主要介绍了java 读取文件方法的总结的相关资料,这里提供文件读取5种方法并附实例,需要的朋友可以参考下
    2017-08-08
  • Java 流的高级使用之收集数据解析

    Java 流的高级使用之收集数据解析

    这篇文章主要介绍了Java 流的高级使用之收集数据解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 深入解析System.load 与 System.loadLibrary

    深入解析System.load 与 System.loadLibrary

    以下是对System.load与System.loadLibrary进行了详细的分析介绍。需要的朋友可以过来参考下
    2013-08-08
  • Java8新特性之Optional使用详解

    Java8新特性之Optional使用详解

    这篇文章主要介绍了Java8新特性之Optional使用详解,为了解决空指针异常更加优雅,Java8 提供了 Optional 类库,Optional 实际上是个容器,它可以保存类型T的值,或者仅仅保存null,,需要的朋友可以参考下
    2023-08-08
  • 在Eclipse IDE使用Gradle构建应用程序(图文)

    在Eclipse IDE使用Gradle构建应用程序(图文)

    这篇文章主要介绍了在Eclipse IDE使用Gradle构建应用程序(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • IDEA的常见的设置和优化功能图文详解

    IDEA的常见的设置和优化功能图文详解

    这篇文章主要介绍了IDEA的常见的设置和优化功能,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论