java web实现简易收费站
今天肝代码了吗 人气:0一、目标
页面内输入车的类型和行驶公里数,可以得到该车的收费金额。
注:小汽车:每公里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 { } }
上述仅部分代码
加载全部内容