Duke's Bookstore(Servlet 版本)笔记

duda hart Pattern Recognition textbook 2nd ed Duda R.O., Hart P.E., Stork D.G. Pattern classification (2ed., Wiley)(C)(738s) 立即下载

1 新增的event模型:通过设定Listener,可以在Servlet的初始化之前和之后做某些事情.这是事件模型在Servlet中的应用.

  在访问/bookstore1/enter之后, ContextListener 构造了一个DB,并且把它放到ServletContext中去,这样BookstoreServlet可以从Context中得到这个初始化的DB

 

  核心代码如下:

 

  context = event.getServletContext();

 

  …………………………………..

 

  context.setAttribute("bookDB", bookDB);

 

  ContextListener 类的实现是很简单的,只有: contextInitialized, contextDestroyed两个方法

 

生存期事件:

 

  不单ServletContext的事件可以监听,Session等的事件也可以监听,分别为:HttpSessionListener , ServletRequestListener

 

 

 

2 RequestDispatch :

 

  在BookstoreServlet 中使用了RequestDispatch,代码如下:

 

  RequestDispatcher dispatcher =

 

               getServletContext().getRequestDispatcher("/banner");

 

                                      

 

            if (dispatcher != null)

 

               dispatcher.include(request, response);

 

  查看web.xml,可知/banner 对应BannerServlet类.

 

  一个RequestDispatch就是一个普通的Servlet类.通常它的应用如下:一个小的Servlet类生成部分Response的结果,而另一个Servlet包含这个结果,进而构造一个Response.这个较小的Servlet类可以理解成网页的模板.程序的Component.这样,提高了Servlet的模块化.

 

 读完第一个BookstoreServlet的源码

 

 

 

3 这时页面有两个连接,一个是书的信息,一个是Start Shopping

 

 

 

1 ) 点击 书的信息 BookDetailsServlet

 

  从Context中取出BookDB,根据Parameter查找记录,然后列出记录.并列出 添加到购物车和继续购物两个选项

 

  1 添加到购物车 CatalogServlet 设置购物车,并列出检查购物车,买书,和书的信息

 

  2 检查购物车 ShowCartServlet 根据request的值检查,没什么新鲜

 

  3 其他Servlet都是这么处理.

 

 

 

2 对于HttpServlet应该如此处理

 

 1 从response得到output stream

 

 2 填充resp的头部信息

 

 3 写body到output

 

 

 

4 Filter 过滤器

 

 概念:

 

Java EE 7 Tutorial: The Duke's Bookstore Java EE 7 Tutorial: The Duke's Bookstore Source Code 立即下载

相关推荐

统信UOS安装CH384串口卡驱动

本文讲解如何在统信UOS系统下安装CH384 PCIE多串口驱动安装过程,CPU为飞腾D2000。其他Linux内核系统安装亦可参照类似方法。

shjhuang的专栏 1884

应用JSF技术开发(Developing with JavaServer Faces Technology:chapter11)《注:未完成》

应用JSF技术开发 Chapter 10 演示了页面作者可以通过页面上的组件标签和core标签将组件和服务器端对象绑定。应用开发者的职责就是编写JSF应用的服务器端对象。这些对象包括后台beans,转换器,事件处理和验证器。这一章用Duke的书店应用(see The Example JavaServer Faces Application, page 308)讲解应用开发者的职责包括:

shinepang的专栏 1473

模块学习(一)——编码电机

编码电机测速

qq_51406846的博客 7911

JavaEE Tutorials (29) - Duke辅导案例研究示例

29.1Duke辅导应用的设计和架构44529.2主界面447  29.2.1主界面中使用的Java持久化API实体447  29.2.2主界面中使用的企业bean448  29.2.3主界面中使用的WebSocket端点448  29.2.4主界面中使用的Facelets文件448  29.2.5主界面中使用的辅助类449  29.2.6属性文件449  29.2.7Duke辅导应用中使用的部署...

weixin_33819479的博客 127

在 CentOS7 下安装 Cadence IC验证平台 INCISIVE152

前言 本文所使用的软件 虚拟机软件:VMware Workstation 15 PRO 如何安装? 操作系统:CentOS-7, CentOS-7-x86_64-DVD-1810.iso 如何安装? 简介 INCISIVE Incisive是nc_verilog, nc_sim, nc_lauch,以及ABV,TBV的集合,用于仿真和验证。 InstallScape InstallSc...

沈醉不知的博客 2万+

TortoiseSVN的安装与使用

TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I...

qq_28566071的博客 4万+

Java Servlet技术

Java Servlet技术

fdyufgf的博客 3578

modelsim软件安装教程及踩坑(极简版)

1.安装的网盘链接:链接:https://pan.baidu.com/s/1ltUfssyXlCnqDmLhWyhlwA提取码:jery 2.步骤(参考博文):https://blog.youkuaiyun.com/weixin_42693097/article/details/90523692?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163521788716780357213801%2522%252C%2522scm%2522%253A%2522

subtitle_的博客 3780

Java Servlet技术 (总结)

当Web刚开始被用来传送服务时,服务提供者就已经意识到了动态内容的需要。Applet是为了实现这个目标的一种最早的尝试,它主要关注使用客户端平台来交付动态用户体验。与此同时,开发人员也在研究如何使用服务器平台实现这个目标。开始的时候,公共网关接口(Common Gateway Interface ,CGI)脚本是生成动态内容的主要技术。虽然使用得非常广泛,但CGI脚本技术有很多的缺陷,这包括平台相

今天是昨天的明天 1195

VS2022离线安装包 - 下载安装教程

VS2022离线安装包 - 下载安装教程

鲤籽鲲的博客 3万+

PySide6 vs PyQt6:新手如何根据Python版本选择GUI库?附版本兼容性测试

本文针对Python GUI开发新手,详细对比了PySide6与PyQt6的核心差异,并提供了基于Python 3.8至3.12等不同版本的兼容性实测数据与选择建议。文章重点分析了版本选择策略,帮助开发者根据自身Python环境、项目需求(如与matplotlib集成)及许可证考量,做出最合适的决策,并附有安装验证与避坑指南。

weixin_29094539的博客 703

Java EE 5 开发指南 - 第三章 Java Servlet技术

第三章 Java Servlet技术当Web技术得到广泛应用的同时,人们认识到动态地提供Web内容的需求。Applet就是早期发展起来的一项技术,用于在客户端平台向用户提供动态的内容。同时,开发人员也在努力尝试在服务端实现动态内容的提供技术,CGI(Common Gateway Interface,通用网关技术)就是当时主要使用的技术之一,但CGI技术有其很大的局限性,如平台依赖性、缺乏可靠的

流言簿 - Addyou 1174

控制科学与工程(自动化)保研经验【4】——浙大篇

控制科学与工程(自动化)保研经验【4】——浙大篇

Control Everything 1万+

bookStore商城开发文档

bookStore商城开发文档 一、项目演示 看课堂笔记。 二、需求分析   2.1、系统体系结构   基于BS结构进行开发。(浏览器与服务器:瘦客户端)   2.1、系统总体流程        2.3、功能描述   对于本系统,用户一共分成三种,普通用户(游客)、注册会员(注册用户)、管理员。 ...

weixin_34232617的博客 1040

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

使用Ant配置Weblogic环境

  使用Ant配置Weblogic环境,使开发者可以尽快投入工作。1。建立domain 和 server。使用 wlserver  task2。配置连接池和Datasource3。deploy 使用 wldeploy原文:http://dev2dev.bea.com.cn/bbs/jishudata/ArticleShow.jsp?Id=7参考:http://e-docs.be

WalkingWithJava 1813

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Ant 常用Task

Installation: 1. Set the ANT_HOME environment variable to point to this location. 2. Set the JAVA_HOME environment variable to point to the JDK location. 3. Add ANT_HOME/bin to your

WalkingWithJava 1790

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

配置PointBase

主要文件:只有三个pbclient.jar,pbembedded.jar 和 pbtools.jar    设置pointBase环境变量:   setPBEnv.bat   set PB_HOME=D:/Devs/pointbaseset OLDCP=%CLASSPATH%set CLASSPATH=%PB_HOME%/li

WalkingWithJava 1764

微软研发致胜策略读书笔记

项目的讨论   精确的项目目标   作为主管,值得你好好花时间去设定你的项目目标。目标定下来之后,你就会清楚哪些工作该做,那些工作不该做。例如你是基础函数库的主管,如果你确定了“只有所有模块都使用的函数才是要开发的函数”的原则,那么某个模块要求你开发的工作,就不是你的目标了。  每天花10-15分钟想想目标,并且想些解决的小窍门。例如作者某天是这样想的:

WalkingWithJava 1762

读写文本的类

AbstractTextOperator.java/* * Package : diegoyun.work * File : AbstractTextOperator.java * Create by : diegoyun * Create on : 2005-1-2 0:44:31 * --------------------------- */package diegoyun.work;

WalkingWithJava 1538

kodojdo指南第九章

第九章  事务  事务用来保证事务完整性.它把操作集中到一个工作组,这个组里的操作要么全部成功,要么全部失败.事务有几个特性  1)原子性:原子性指事务的要么全部成功-要么全部失败的属性.要么事务中的每个更新数据的操作都成功完成,要么全部失败.而不管数据在数据库中的原始状态是怎样.事务不可能部分地成功.  2)一致性.每个事务使数据库的数据从一种连贯状态到另一种连贯状态.  3)隔离性

WalkingWithJava 1509
上一篇: EL表达式入门
下一篇: 常用技巧
云哥
博客等级 码龄22年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值