读书人

sevlet练习题1-模拟购物车

发布时间: 2012-06-28 15:20:03 作者: rapoo

sevlet练习1-模拟购物车

练习要求:不使用jsp页面,只用servlet实现模拟购物车的需求。效果图:

初次访问时:sevlet练习题1-模拟购物车

点击按钮添加了一件商品后:sevlet练习题1-模拟购物车

多次点击按钮添加商品后:sevlet练习题1-模拟购物车

?

练习分析:模拟购物车的需求较为简单,我们用一个单一的Sevlet实现。把“添加商品”按钮作为提交按钮,将请求转发给servlet本身。为了识别多次请求是否为同一个用户,我们需要在表单中加一个参数。由于传递的参数需要对用户不可见,我们需要用到隐藏表单域“<input type="hidden">”。每次商品的编号由随即函数生成。而用户已经选择的商品,我们用一个arraylist来记录。

?

最终代码:package netjava.raul.shop;

import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import java.util.Random;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class shopServlet */public class shopServlet extends HttpServlet {private static final long serialVersionUID = 1L;private Random r = new Random();List<Integer> l = new ArrayList<Integer>();/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html; charset=gbk");PrintWriter out = response.getWriter();out.print("<h2>购物车</h2><br/>");String user = request.getParameter("user");System.out.println(user);out.print("<form name='addgoods' action='shopServlet' method='get'>");if(!"raul".equals(user)){out.print("<p>您的购物车空空如也,快去挑选自己喜欢的商品吧</p>");}else{out.print("<p>欢迎您回来"+user+",以下是商品清单</p>");int i = r.nextInt(100);l.add(i);for(int p=0;p<l.size();p++){out.print("<p>商品"+l.get(p)+"</p>");}}out.print("<input type='hidden' name='user' value='raul'/>");out.print("<input type='submit'  value='添加商品'/>");out.print("</form>");out.flush();out.close();}}

读书人网 >Web前端

热点推荐