Jsp+Servlet实现购物车功能

本文实例为大家分享了Servlet实现购物车功能的具体代码,供大家参考,具体内容如下

(1)用servlet实现简单的购物车系统,项目结构例如以下:(新建web Project项目  仅仅须要AddItemServlet , ListItemServlet。exam403.jsp三个文件就可以。其它的不用管)

(2)exam403.jsp代码例如以下:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="/servletProject/addItem">
 <label></label>
 商品:
 <select name="itemID" id="itemID">
  <option value="洗衣粉">洗衣粉</option>
  <option value="香皂">香皂</option>
  <option value="食用油">食用油</option>
 </select>
 <p>数量:
  <label>
  <input name="quantity" type="text" id="quantity" value="1" />
  </label>
  <label>
  <input type="submit" name="Submit" value="提交" />
  </label>
  <a href="/servletProject/listItem">查看购物车</a></p>
</form>
</body>
</html>

(3)AddItemServlet代码例如以下:

package com.lc.shoppingCar;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class AddItemServlet extends HttpServlet
{
 protected void doGet(HttpServletRequest request,HttpServletResponse response)
             throws ServletException,java.io.IOException
  {
   ServletContext application=getServletContext() ;
   ServletConfig config=getServletConfig() ;
   response.setContentType("text/html;charset=gb2312");
   PrintWriter out=response.getWriter();
   HttpSession session =request.getSession();
   request.setCharacterEncoding("gb2312");

   //读取表单传入的商品ID及数量
   String id=request.getParameter("itemID");
 String num=request.getParameter("quantity");
 if(id!=null && num.length()!=0)
 { //从Sessionn中读取购物车
 HashMap shoppingCar=(HashMap)session.getAttribute("shoppingCar");
   if(shoppingCar==null)
    shoppingCar=new HashMap();
   //将商品加入到购物车中
   String onum=(String)shoppingCar.get(id);
   if(onum==null)
     shoppingCar.put(id,num);
   else
   {
    int n1=Integer.parseInt(num);
   int n2=Integer.parseInt(onum);
   String result=String.valueOf(n1+n2);
   shoppingCar.put(id,result);
   }
     //将购物车写回session中保存
   session.setAttribute("shoppingCar",shoppingCar);
  }
  else //假设传入的商品ID号为空或数量为空。显示提示信息
   System.out.print("商品ID号为空会或数量为空!");
  //返回商品列表页
  response.sendRedirect("/servletProject/exam403.jsp");
   } 

protected void doPost(HttpServletRequest request,HttpServletResponse response)
                throws ServletException,java.io.IOException
 {
   doGet(request,response);
  }
}

(4)ListItemServlet代码例如以下:

package com.lc.shoppingCar;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class ListItemServlet extends HttpServlet
{
 protected void doGet(HttpServletRequest request,HttpServletResponse response)
             throws ServletException,java.io.IOException
  {
   ServletContext application=getServletContext() ;
   ServletConfig config=getServletConfig() ;
   response.setContentType("text/html;charset=gb2312");
   PrintWriter out=response.getWriter();
   HttpSession session =request.getSession();
   request.setCharacterEncoding("gb2312");

    //从session中获取购物车
 HashMap shoppingCar=(HashMap)session.getAttribute("shoppingCar");
  //显示购物车中的内容
  if(shoppingCar!=null)
  {
    Set show=shoppingCar.entrySet();
    Iterator it=show.iterator();
    while(it.hasNext())
    {
     out.print(it.next()+"<br>");
    }
  }
  else
    out.print("购物车为空。");
   } 

protected void doPost(HttpServletRequest request,HttpServletResponse response)
                throws ServletException,java.io.IOException
 {
   doGet(request,response);
  }
}

(5)实现效果例如以下:

訪问:http://localhost:8080/servletProject/exam403.jsp    学则商品 提交

点击查看购物车:

OK!

简单的购物车 到此结束!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈Servlet转发到JSP页面的路径问题(必看)

    一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时,则会出现路径混乱问题. 2. 绝对路径概念 相对于contextPath(当前Web应用的上下文)的路径. 解决方案:超链接用绝对路径而不是相对路径.若/代表的是站点的根目录,在其前面加上contextPath. <a href="<%= request.getConte

  • Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径. 另:在Jsp,Servlet,Java中详细获得路径的方法! 1.jsp中取得路径: 以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp

  • JSP中通过Servlet 将服务器硬盘图片并展示到浏览器

    JSP中通过Servlet 将服务器硬盘图片并展示到浏览器 其实这个实例非常简单,但是今天有人问我了,而且我也写了个小例子,就顺便发上来吧! 在浏览器显示一张图片,使用标签 <img src=""> img 元素向网页中嵌入一幅图像. 请注意,从技术上讲,<img> 标签并不会在网页中插入图像,而是从网页上链接图像.<img> 标签创建的是被引用图像的占位空间. <img> 标签有两个必需的属性:src 属性 和 alt 属性. HTML

  • JSP 中Servlet的自己实现

    JSP 中Servlet的自己实现 一 步骤 1.继承HttpServlet 2.重写doGet()或者doPost()方法 3.在web.xml中注册Servlet 二 HttpServlet类继承图 三 实例 1.创建MyFirstServletDemo web project. 2.编辑index.jsp <%@ page language="java" import="java.util.*" contentType="text/html;

  • JSP 开发之servlet中调用注入spring管理的dao

    JSP 开发之servlet中调用注入spring管理的dao 我们用spring的依赖注入可以将dao注入到action中,然后我们就可以直接调用了dao中的方法了,可是servlet不是由spring容器管理,所以在servlet中不能注入dao类,也就不能用dao中的方法. 下面是实现方法: private UserDao userDao; public void init() throws ServletException { super.init(); ServletContext s

  • JSP 开发之Servlet解决网页缓存问题

    JSP 开发之Servlet解决网页缓存问题 (1)我们为什么要防止游览器页面缓存的问题: 所以在不需要缓存的页面中需要实现不缓存页面: 代码如下: package com.lc.HttpTest; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.ser

  • JSP 开发之THE SERVLET NAME ALREADY EXISTS.解决方法

    The servlet name already exists.解决方法 当我们建立过同名的servlet文件,然后又将其删掉后再用同类名字建一个servlet时就会报错. 解决办法:web.xml里面存有servlet的映射关系,需要自己手动删除web.xml里面的映射关系. 删除,保存刷新即可 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • JSP开发Servlet重写init()方法实例详解

    JSP开发Servlet重写init()方法实例详解 写一个Servlet时,有时需要我们重写该Servlet的初始化方法,然后,究竟是重写init(ServletConfig config),还是重写init(),这是个问题.要明了这一点,首先要知道Servlet的几个类和接口的联系: ServletConfig接口:其中有getServletName();getServletContext();getInitParameter(String name);getInitParameterNam

  • Jsp+Servlet实现购物车功能

    本文实例为大家分享了Servlet实现购物车功能的具体代码,供大家参考,具体内容如下 (1)用servlet实现简单的购物车系统,项目结构例如以下:(新建web Project项目  仅仅须要AddItemServlet , ListItemServlet.exam403.jsp三个文件就可以.其它的不用管) (2)exam403.jsp代码例如以下: <%@ page contentType="text/html; charset=gb2312" language="

  • JSP+Servlet实现文件上传到服务器功能

    本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao.service.servlet 这三层是主要的结构,类似 MVC 架构,Dao是模型实体类(逻辑层),service是服务层,servlet是视图层,三者协作共同完成项目. 这里的User是由user表来定义的一个类,再封装增删改查等操作,实现从数据库查询与插入,修改与删除等操作,并实现了分页操作,也实现了将图片放到服务器上运行的效

  • jsp+servlet实现简单登录页面功能(附demo)

    目录 实现功能: 开发环境: 预备知识: 1.登录界面login.jsp: 2.登录成功界面hello.jsp: 3.登录失败信息回显Login.jsp: 思路简述: 具体代码Code: 实现功能: 模拟简单登录功能,登录成功跳转新页面,登录失败在原登录界面提示登录失败信息 开发环境: eclipse Tomcat-8.0 预备知识: HTML标签,Servlet相关知识--请求的转发与重定向,jsp相关知识,EL表达式 思路实现:共2个jsp,一个servlet 1.登录界面login.jsp

  • jsp+servlet实现文件上传与下载功能

    本文实例为大家分享了jsp servlet实现文件上传与下载的具体代码,供大家参考,具体内容如下 上传: 需要导入两个包:commons-fileupload-1.2.1.jar,commons-io-1.4.jar import java.io.File; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.Http

  • jsp+servlet简单实现上传文件功能(保存目录改进)

    1.jsp前端 <%-- Created by IntelliJ IDEA. User: Lenovo Date: 2020/6/19 Time: 22:53 Learn from https://www.bilibili.com/video/BV18z411i7gh?t=23&p=192 To change this template use File | Settings | File Templates. --%> <%@ page contentType="te

  • 利用session实现简单购物车功能

    本文实例为大家分享了利用session实现简单购物车功能的具体代码,供大家参考,具体内容如下 一.实现的功能 (1) 利用session实现购物车中的物品添加.(2)使用servlet实现添加物品的功能(交互层).(3)一共有三个界面.第一个用来显示物品的列表的页面,第二个用来显示添物品的界面,第三个用来显示添加到购物车的信息页面. 二.代码实现 (1)物品列表页面:productlist.jsp <%@ page language="java" contentType=&quo

  • 详解Struts2中对未登录jsp页面实现拦截功能

    Struts2中拦截器大家都很经常使用,但是拦截器只能拦截action不能拦截jsp页面.这个时候就有点尴尬了,按道理来说没登录的用户只能看login界面不能够通过输入URL进行界面跳转,这显然是不合理的.这里介绍Struts2中Filter实现jsp页面拦截的功能.(有兴趣的人可以去研究Filter过滤器的其它用法,因为利用过滤器也可以实现action拦截的功能) 下面直接上代码,边看边分析实现步骤和原理. 1.web.xml中的配置信息: <filter> <filter-name&

  • JSP/Servlet应用程序优化八法

    你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访问量?本文讲述了开发高性能.高弹性的JSP页面和Servlet的性能优化技术.其意思是建立尽可能快的并能适应数量增长的用户及其请求.在本文中,我将带领你学习已经实践和得到证实的性能调整技术,它将大大地提高你的servlet和jsp页面的性能,进而提升J2EE的性能.这些技术的部分用于开发阶段,例如,设计和编码阶段.另一部分技术则与配置相关. 技术1:在HttpServletinit()方法中缓存数据 服务器会在创建servlet实例之

  • jsp+Servlet编程实现验证码的方法

    本文实例讲述了jsp+Servlet编程实现验证码的方法.分享给大家供大家参考,具体如下: 这里用到两个类,一个用于验证码实现,一个为后台Servlet验证输入是否正确: CodeUtil.java--------验证码具体实现: package util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.

  • JSP/Servlet 中的汉字编码问题

    JSP/Servlet 中的汉字编码问题 网上就 JSP/Servlet 中 DBCS 字符编码问题有许多优秀的文章和讨论,本文对它们作一些整理,并结合 IBM WebSphere Application Server 3.5(WAS)的解决方法作一些说明,希望它不是多余的.内容: 问题的起源 ??????-80,GBK,GB18030-2000 汉字字符集及 Encoding 中文转码时'?'.乱码的由来 JSP/Servlet 汉字编码问题及在 WAS 中的解决办法 结束语 参考文章 1.

随机推荐