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 {

 }
}

上述仅部分代码

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

相关文章

  • MyBatis-Plus模糊查询特殊字符串转义的实现

    MyBatis-Plus模糊查询特殊字符串转义的实现

    使用MyBatis中的模糊查询时,当查询关键字中包括有_、\、%时,查询关键字失效,本文主要介绍了MyBatis-Plus模糊查询特殊字符串转义的实现,感兴趣的可以了解一下
    2024-06-06
  • BMIDE环境导入项目报编码错误解决方案

    BMIDE环境导入项目报编码错误解决方案

    这篇文章主要介绍了BMIDE环境导入项目报编码错误解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • java 中模式匹配算法-KMP算法实例详解

    java 中模式匹配算法-KMP算法实例详解

    这篇文章主要介绍了java 中模式匹配算法-KMP算法实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • springMvc请求的跳转和传值的方法

    springMvc请求的跳转和传值的方法

    本篇文章主要介绍了springMvc请求的跳转和传值的方法,这里整理了几种跳转方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • Javaweb获取表单数据的多种方式

    Javaweb获取表单数据的多种方式

    这篇文章主要为大家详细介绍了Javaweb获取表单数据的多种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • java基于递归算法实现汉诺塔问题实例

    java基于递归算法实现汉诺塔问题实例

    这篇文章主要介绍了java基于递归算法实现汉诺塔问题,结合具体实例形式分析了java递归算法的实现与使用技巧,需要的朋友可以参考下
    2017-07-07
  • 如何在springboot中实现页面的国际化

    如何在springboot中实现页面的国际化

    今天带大家学习如何在springboot中实现页面的国际化,文中有非常详细的图文解说及代码示例,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • Java实现带GUI的气泡诗词效果

    Java实现带GUI的气泡诗词效果

    这篇文章主要为大家介绍了如何利用Java实现带GUI的气泡诗词效果,文中的示例代码讲解详细,对我们学习Java有一定帮助,感兴趣的可以了解一下
    2022-12-12
  • 一篇文章带你认识Java8接口的默认方法

    一篇文章带你认识Java8接口的默认方法

    这篇文章主要给大家介绍了如何通过一篇文章带你认识Java8接口的默认方法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java8具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Mybatis中isNotNull与isNotEmpty的使用心得

    Mybatis中isNotNull与isNotEmpty的使用心得

    这篇文章主要介绍了Mybatis中isNotNull与isNotEmpty的使用心得,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论