文章目录
一、目标
页面内输入车的类型和行驶公里数,可以得到该车的收费金额。
注:小汽车:每公里5角。大巴车:每公里1元,营运税每次100元。
二、基础知识
JavaBeans的使用
- JavaWeb开发中常用JavaBeans来存放数据、封装业务逻辑等。JavaBeans最大的优点就是可以实现代码的重用。
- 作为JavaBeans使用的Java类需遵循三个规范:
1.JavaBeans应该是public类,并且具有无参数的public构造方法
2.JavaBeans类的成员变量一般被称为属性,对每个属性访问权限一般定义为private
3.每个属性通常定义两个public方法,一个是访问方法(getter),一个是修改方法(setter),使用它们访问和修改JavaBeans的属性值。
三、实现思路
- 输入页面:输入汽车类型和行驶公里,提交给servlet
- servlet:读取提交的数据,生成相应的汽车类类型(不能声明小汽车类型或大巴车)的对象,调用对象的收费方法,跳转到收费结果jsp。
- 结果显示页面:读取数据(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 {
}
}
上述仅部分代码
本人原创,欢迎转载~