java web實(shí)現(xiàn)簡(jiǎn)易收費(fèi)站
本文實(shí)例為大家分享了java web實(shí)現(xiàn)簡(jiǎn)易收費(fèi)站的具體代碼,供大家參考,具體內(nèi)容如下
一、目標(biāo)
頁(yè)面內(nèi)輸入車(chē)的類(lèi)型和行駛公里數(shù),可以得到該車(chē)的收費(fèi)金額。
注:小汽車(chē):每公里5角。大巴車(chē):每公里1元,營(yíng)運(yùn)稅每次100元。
二、基礎(chǔ)知識(shí)
JavaBeans的使用
1、JavaWeb開(kāi)發(fā)中常用JavaBeans來(lái)存放數(shù)據(jù)、封裝業(yè)務(wù)邏輯等。JavaBeans最大的優(yōu)點(diǎn)就是可以實(shí)現(xiàn)代碼的重用。
2、作為JavaBeans使用的Java類(lèi)需遵循三個(gè)規(guī)范:
1).JavaBeans應(yīng)該是public類(lèi),并且具有無(wú)參數(shù)的public構(gòu)造方法
2).JavaBeans類(lèi)的成員變量一般被稱為屬性,對(duì)每個(gè)屬性訪問(wèn)權(quán)限一般定義為private
3).每個(gè)屬性通常定義兩個(gè)public方法,一個(gè)是訪問(wèn)方法(getter),一個(gè)是修改方法(setter),使用它們?cè)L問(wèn)和修改JavaBeans的屬性值。
三、實(shí)現(xiàn)思路
1、輸入頁(yè)面:輸入汽車(chē)類(lèi)型和行駛公里,提交給servlet
2、servlet:讀取提交的數(shù)據(jù),生成相應(yīng)的汽車(chē)類(lèi)類(lèi)型(不能聲明小汽車(chē)類(lèi)型或大巴車(chē))的對(duì)象,調(diào)用對(duì)象的收費(fèi)方法,跳轉(zhuǎn)到收費(fèi)結(jié)果jsp。
3、結(jié)果顯示頁(yè)面:讀取數(shù)據(jù)(javabean)的收費(fèi)金額,顯示結(jié)果(不能有任何腳本和java代碼)
四、代碼
charge-select.jsp(輸入界面)
<form action="vehicle.do" method="post"> <table> <tr> <td> 汽車(chē)類(lèi)型: </td> <td> <select name="type"> <option value="0">--請(qǐng)選擇--</option> <option value="car">小汽車(chē)</option> <option value="bus">大卡車(chē)</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>收費(fèi)結(jié)果</title> </head> <body> //javabeans的使用 價(jià)格:<jsp:getProperty name="v" property="money"/>元 </body> </html>
Vehicle.java
package charge;
//Vehicle類(lèi)
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的子類(lèi)Car
class Car extends Vehicle{
private float mile;
private float money;
public Car(float mile) {
super(mile);
}
//計(jì)算收費(fèi)金額
public float count(float mile){
float price;
price =(float) 0.5*this.getMile();
return price;
}
}
//Vehicle的子類(lèi)Bus
class Bus extends Vehicle{
private float mile;
private float money;
public Bus(float mile) {
super(mile);
}
//計(jì)算收費(fèi)金額
public float count(float mile){
return (float) (mile+100);
}
}
VehicleServlet.java(計(jì)算金額)
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 ;
//分情況計(jì)算收費(fèi)金額
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);
}
//轉(zhuǎn)發(fā)
RequestDispatcher dispatcher = request.getRequestDispatcher("/charge-result.jsp");
dispatcher.forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
上述僅部分代碼
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java+Mysql學(xué)生管理系統(tǒng)源碼
- 圖書(shū)管理系統(tǒng)java版
- 圖書(shū)管理系統(tǒng)java代碼實(shí)現(xiàn)
- javaWeb實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- java學(xué)生管理系統(tǒng)界面簡(jiǎn)單實(shí)現(xiàn)(全)
- Java+MySQL實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)源碼
- java學(xué)生信息管理系統(tǒng)源代碼
- 一個(gè)簡(jiǎn)陋的java圖書(shū)管理系統(tǒng)
- Java?GUI實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
- java實(shí)現(xiàn)水果超市管理系統(tǒng)
相關(guān)文章
mybatis插入數(shù)據(jù)后返回自增主鍵ID的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了mybatis插入數(shù)據(jù)后返回自增主鍵ID的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
spring?boot集成smart-doc自動(dòng)生成接口文檔詳解
這篇文章主要介紹了spring?boot集成smart-doc自動(dòng)生成接口文檔詳解,smart-doc是一款同時(shí)支持java?restful?api和Apache?Dubbo?rpc接口文檔生成的工具,smart-doc顛覆了傳統(tǒng)類(lèi)似swagger這種大量采用注解侵入來(lái)生成文檔的實(shí)現(xiàn)方法2022-09-09
java如何更改數(shù)據(jù)庫(kù)中的數(shù)據(jù)
這篇文章主要介紹了java如何更改數(shù)據(jù)庫(kù)中的數(shù)據(jù),修改數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)操作必不可少的一部分,使用Statement接口中的excuteUpdate()方法可以修改數(shù)據(jù)表中的數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2021-11-11
Java 流的高級(jí)使用之收集數(shù)據(jù)解析
這篇文章主要介紹了Java 流的高級(jí)使用之收集數(shù)據(jù)解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
深入解析System.load 與 System.loadLibrary
以下是對(duì)System.load與System.loadLibrary進(jìn)行了詳細(xì)的分析介紹。需要的朋友可以過(guò)來(lái)參考下2013-08-08
在Eclipse IDE使用Gradle構(gòu)建應(yīng)用程序(圖文)
這篇文章主要介紹了在Eclipse IDE使用Gradle構(gòu)建應(yīng)用程序(圖文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
IDEA的常見(jiàn)的設(shè)置和優(yōu)化功能圖文詳解
這篇文章主要介紹了IDEA的常見(jiàn)的設(shè)置和優(yōu)化功能,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07

