本文实例讲述了Java Web开发之基于Session的购物商店实现方法。分享给大家供大家参考,具体如下:

package cn.com.shopping;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

//完成购买

public class BuyServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String id=request.getParameter("id");

Book book=(Book)Db.getAll().get(id);

//再加上那个关闭Cookie时session的剞劂方案

//阻止session的时候解决方案

HttpSession session=request.getSession(false);

//从session中得到用户的保存所有书的集合(购物车)

List list=(List)session.getAttribute("list");

if(list==null)

{

list=new ArrayList();

session.setAttribute("list", list);

}

list.add(book);

String url=response.encodeRedirectURL("/Session/SessionCountDemo");

response.sendRedirect(url);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request,response);

}

}

package cn.com.shopping;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.LinkedHashMap;

import java.util.Map;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

//显示书

public class ListBookServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

PrintWriter out=response.getWriter();

HttpSession session=request.getSession();

out.print("本店有如下的商品:
");

Map map=Db.getAll();

for(Map.Entry entry:map.entrySet())

{

Book book=entry.getValue();

String url=response.encodeURL("/Session/BuyServlet?id="+book.getId());

out.print(book.getName()+"购买
");

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request,response);

}

}

//Db作为数据库

class Db

{

private static Map map=new LinkedHashMap();

static

{

map.put("1", new Book("1","Java WEB开发","WY","好书"));

map.put("2", new Book("2","WEB开发","zt","一般"));

map.put("3", new Book("3","程序设计","df","较好书"));

map.put("4", new Book("4","计算机组成","as","一般好书"));

map.put("5", new Book("5","编译原理","ty","很好书"));

map.put("6", new Book("6","网络维护","hj","非常好书"));

}

public static Map getAll()

{

return map;

}

}

//书

class Book

{

private String id;

private String name;

private String author;

private String description;

public Book() {

super();

// TODO Auto-generated constructor stub

}

public Book(String id, String name, String author, String description) {

super();

this.id = id;

this.name = name;

this.author = author;

this.description = description;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAuthor() {

return author;

}

public void setAuthor(String author) {

this.author = author;

}

public String getDescription() {

return description;

}

public void setDescription(String description) {

this.description = description;

}

}

package cn.com.shopping;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class SessionCountDemo extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

PrintWriter out=response.getWriter();

HttpSession session=request.getSession();

if(session==null)

{

out.write("您没买任何的商品!");

return;

}

out.write("您购买了如下的商品:");

List list=(List) session.getAttribute("list");

for(Book book:list)

{

out.write(book.getName());

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request,response);

}

}

希望本文所述对大家Java web程序设计有所帮助。

java 写一个商店_Java Web开发之基于Session的购物商店实现方法相关推荐

  1. java和Mysql数据一致性_java web开发中数据一致性的问题

    在java web开发中,数据存储介质有如下几种数据库(rdms,nosql) 缓存系统(redis,memcached,ehcache) java内部数据结构(map,list) 文件存储(fast ...

  2. java启动mysq服务_Java Web开发——MySQL数据库的安装与配置

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  3. java 写一个计算器_java编写一个计算器类

    展开全部 import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.aw ...

  4. java dispatcher详解_Java Web开发详解:RequestDispatcher接口

    12.6.1  RequestDispatcher接口 RequestDispatcher 对象由 Servlet 容器创建,用于封装一个由路径所标识的服务器资源.利用RequestDispatche ...

  5. java中有地址吗_java web开发中各类地址的写法

    这个其实有三个原则: 1.如果这个地址是给服务器用的,该地址的起点就是从该web应用开始写. 2.如果这个地址是给浏览器用的,该地址的起点就是从该网站开始写. 3.所有的地址都以"/&quo ...

  6. java开发简介_Java Web开发介绍

    转自:http://www.cnblogs.com/pythontesting/p/4963021.html 简介 Java很好地支持web开发,在桌面上Eclipse RCP谈不上成功,JAVA是主 ...

  7. java osgi web开发_基于 OSGi 和 Spring 开发 Web 应用

    开发一个简单的OSGi Web应用实例 一个简单的Web应用 我们写一个简单的 Web 应用 compute.html :计算两个数字的和或乘积.如下图所示: 图1.一个简单例子 一个简单例子.bmp ...

  8. 手把手教你写网站:Python WEB开发技术实战

    摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...

  9. 如何用Java写一个斗地主(一)

    如何用Java写一个斗地主(一) 序言 正文 创建卡牌 打乱牌序 发牌 课后吐槽 序言 作为一名大三的普普通通大学生,被实习老师(?)强迫下,第一次开始写CSDN的博客,如果写的不好,请多多包涵咯. ...

最新文章

  1. 使用面向 iOS 的本机插件扩展 PhoneGap
  2. Go语言 goroutine
  3. 美媒看衰马斯克超级高铁:纽约到华盛顿挖隧道要挖100年
  4. oracle sql比较时间大小,Oracle数据库中日期时间的操作比较和加减
  5. jmeter connection reset解决方法
  6. 国内淘宝镜像 cnpm转npm
  7. 行、重复-SAP HANA 集合操作 UNION/Union all/INTERSECT/EXCEPT (SAP HANA Set Operations)-by小雨...
  8. 客户端级别的渲染分析工具 dynaTrace
  9. java es sql groupby_使用 SQL 查询 ElasticSearch EsParser
  10. 翁恺老师C语言学习笔记(十)指针_指针的使用
  11. Palo Alto Networks 支持仪表盘漏洞泄露数千份客户支持工单
  12. Linux下常用网络配置命令
  13. T61 拆机4短报警 续
  14. u深度重装系统详细教程_U深度U盘安装原版win7系统的图文教程
  15. 联想7400打印机如何与手机连到一起_2020年打印机推荐选购,看这篇就够了
  16. 23种设计模式JAVA案例
  17. 【操作系统 · 磁盘】磁盘调度
  18. c语言中y=0x20什么意思,0x20(十六进制0x20等于多少)
  19. vue2理论学习(全套教程,包含vuex、路由等)
  20. mysql连接字符串配置_配置数据库连接字符串ConnectionString

热门文章

  1. Java枚举类使用方式
  2. jdk环境变量配置极速版
  3. lua 开发环境搭建(windows 平台)
  4. SQL与NoSQL区别-查询方式
  5. C++中的运算符重载基础
  6. Linux中的简单文本处理
  7. wordpress acf字段 不同样式_WordPress强大搜索功能如何实现?安装Ivory Search插件
  8. 一套完整的3D结构光系统搭建指南!
  9. 保护隐私的 Structure-from-Motion (SfM)
  10. Hough Transform 霍夫变换检测直线