Servlet是运行在服务器上的一段小程序,一个servlet就是一个java类,可以通过 请求/响应 的编程模型来访问这段程序。
1.编写一个servlet程序要经过三个步骤
1>编写一个java类,该类要继承HttpServlet类
2>重写HttpServlet中deGet()或者doPost()方法
3>在web.xml中注册Servlet
2.Servlet执行流程
1>浏览器请求,会有一个url,例如:...servlet/testOne
2>到web.xml文件中,找url-pattern
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/servlet/testOne</url-pattern>
</servlet-mapping>
3>找url-pattern对应的servlet-name对应的servlet-class,如下
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>test.helloWorld(类helloWord的具体路径)</servlet-class>
</servlet>
4>找到类helloWorld
public class helloWorld extends HttpServlet{
//具体方法
}
3.Servlet生命周期
1>浏览器发送request请求
2>判断Servlet实例是否存在
3>不存在的话,装载Servlet类并创建实例
4>调用init()方法
5>调用service方法
6>调用Destroy方法
实战项目
项目:使用servlet技术实现购物车效果
设计:购物车类的设计
购物车里面主要有 商品 +价格
因此,可以设计一个 商品类,然后加上 数量 构成 购物车类。
商品类如下
public class Items{
//商品编号
private int id;
//商品名称
private String name;
//商品价格
private int price;
}
购物车类如下
public class Char{
//购买商品集合
private HashMap<Items,Integer> goods;
//购物车总金额
private double totalPrice;
//构造方法,初始化变量
public Char()
{
goods = new HashMap<Items,Integer>();
totalPrice = 0.0;
}
//添加商品到购物车方法
public boolean addGoos(Items item,int number)
{
goods.put(item,number);
//添加后需要重新计算购物车的价格
calTotalPrice();
return true;
}
//删除商品方法
public boolean delGoods(Items item)
{
goods.remove(item);
//添加后需要重新计算购物车的价格
calTotalPrice();
return true;
}
//统计购物车的总金额
public double calTotalPrice()
{
double sun = 0.0;
//获得hashMap所有的键值
Set<Items> keys = goods.keySet();
//使用迭代器
Iterator<Items> it = keys.iterator();
while(it.hasNext())
{
Items i = it.next();
sum = sum + i.getPrice*goods.get(i);
}
//设置购物车总金额
this.setTotalPrice(sum);
//返回购物车总价
return this.getTotalPrice();
}
//测试购物车类
public static void main(String[] args)
{
//创建商品对象
Items it1 = new Items(1,"李宁",200);
Items it2 = new Itmes(2,"耐克",300);
//创建购物车类
Char c = new Char();
//添加商品
c.addChar(it1,2);
c.addChar(it2,3);
//商品总价格
double price = c.getTotalPrice();
}
}