1. 程式人生 > 程式設計 >java web實現簡易收費站

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,IOException {

 }
}

上述僅部分程式碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。