版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaWeb应用开发第5章购物车模块■本章要点
商品详细信息显示实现添加商品到购物车功能详细设计和实现显示购物车中的商品及金额修改购物车中的商品JSP的错误处理订单生成功能详细设计和具体实现第5章购物车模块■功能分析
会员在完成系统登录后,可以进行购物直至生成订单的一系列操作。第5章购物车模块■会员购物活动概图
5.1商品详细信息展示■功能说明
会员登录后,购物的操作入口是该件商品的详细信息页面,在该页面上有“放入购物车”操作功能。
5.1商品详细信息展示■
流程分析及设计
●数据库商品表操作类设计 在数据库商品信息表操作类ProductDao中添加按商品编号查询单个商品信息的方法selectOneProducts,参数是商品编号。 方法返回值是代表某件商品的GoodsEntity对象。可以使用该对象的getXxx方法获取各个字段的内容。
5.1商品详细信息展示■
流程分析及设计
●商品详细信息展示功能流程图5.1商品详细信息展示■编程详解
创建showProductById.jsp,在页面中引入数据库商品信息表操作类ProductDao和实体类ProductEntity实现利用ProductDao的selectOneProducts方法从数据库中检索出会员想购买的商品,检索条件为商品编码,该商品编码通过页面请求参数获得。
5.1商品详细信息展示■编程详解
添加生成数据库商品信息表操作类ProductDao的对象,调用selectOneProducts方法检索商品信息放入ProductEntity对象goods中,查询条件是商品的id号。<ahref="#“onClick="window.open('showProductById.jsp?id=<%=e.getId()%>','','width=500,height=200');">查看详细内容</a>5.1商品详细信息展示■编程详解
实现时将商品信息以提交表单的形式展现,而表单的提交按钮功能由页面上“放入购物车”链接实现,表单的action设为cartAdd.jsp<formname=“form”method=“post”action=“../cart/cartAdd.jsp">…<inputname="picture"type="image"src="<%=goods.getPicture()%>"商品名称:<%=goods.getName()%><inputtype="hidden"name="goodsId"value="<%=goods.getId()%>"/>…5.2添加商品到购物车■功能说明
点击“放入购物车”操作功能,开始该商品的购买流程,购物成功的页面。5.2添加商品到购物车■流程分析及设计●购物车设计购物车中的商品需要记录的只是商品的编号、商品出售的价格和数量,设计临时实体类CartGoods,该类对象代表会员购物车中的商品购买信息。5.2添加商品到购物车■添加商品到购物车功能流程5.2添加商品到购物车■编程详解
●创建cartAdd.jsp,类Vector是java常用的集合类型,用于生成购物车,购物车里商品GoodsCart的实例对象是Vector类实例中的元素,可以利用Vector类的方法方便的实现对购物车进行维护。
<%@pageimport="java.util.*"%><%@pageimport="com.mycompany.cart.CartGoods"%>5.2添加商品到购物车■编程详解
●页面添加到购物车的商品信息、编号和价格是由页面goodsShowOne.jsp以form表单提交的,使用request对象的getParameter方法获取。
intgoodsID=Integer.parseInt(request.getParameter("goodsId"));floatgoodsPrice=Float.parseFloat(request.getParameter("price"));5.2添加商品到购物车■编程详解●生成临时实体类GoodsCart的实例对象并赋值,此时系统设定商品的数量为1,此对象生成以后就准备好添加到购物车了。
CartGoodscartGoods=newCartGoods();cartGoods.ID=goodsID;cartGoods.price=goodsPrice;cartGoods.number=1;●将购物车以session的属性形式存放5.2添加商品到购物车■编程详解
●将新生成的或修改过的购物车存放在session对象的属性中,然后使用JSP内置对象out在返回到客户端的页面上输出一段JavaScript代码,显示购物成功对话框,并将回到客户端的页面关闭。
session.setAttribute(“_CART_",cart);out.println("<scriptlanguage='javascript'>alert('购买商品成功!');window.close();</script>");5.3显示购物车■功能说明在购物车显示页面中列表显示购物车中所选商品的信息:如果没有购买商品,系统显示“您还没有购物”提示。购物车页面上需要为会员提供继续购物、去收银台结账、清空购物车和修改某件购物车中商品的数量等功能。5.3显示购物车■显示购物车的页面预览如下图
5.3显示购物车■流程分析及设计
●购物车显示功能流程设计进入购物车显示页面之前判断是否是已登录会员。在购物车显示页面中引入java实用工具类、代表会员所选商品的临时实体类和商品信息表操作类。从session中获取该会员专有的购物车,判断购物车中有无商品,如果没有商品,页面给出提示信息,返回。依次取出会员购物车中的商品,并生成代表所选商品的临时实体类对象。5.3显示购物车■
流程分析及设计
●购物车显示功能流程图5.3显示购物车■
流程分析及设计
●购物车显示设计遍历购物车,各商品的金额和总金额在购物车遍历中完成显示。设计关键是要提供可供会员修改商品数量的功能,需要将此信息在页面表单中显示,在会员需要修改商品数量时,以请求参数的形式提交给cartModify.jsp处理。5.3显示购物车■
流程分析及设计
●购物车中商品数量修改设计如果在本页面中实现对购物车中特定商品数量修改,则页面流程将比较复杂,也不利于将不同操作以模块化分离提交给cartModify.jsp处理,由cartModify.jsp处理后再自动返回到本页面重新显示购物车。●购物车链接修改设计5.3显示购物车■编程详解创建cartShow.jsp,在页面中引入java实用工具类Vector和代表会员所选购商品信息的临时实体类GoodsCart,以及商品信息表操作类GoodsDao类。Vector类用于生成对象存放会员的购物车,GoodsCart用于存放遍历购物车中的商品购买信息,ProductDao类用于获取商品的其他信息。
5.3显示购物车■编程详解使用session对象的getAttribute方法获取会员购物车,如果为空,说明会员到目前还没有选购商品,系统也没有为该会员生成过购物车,此时页面显示“你还没有购物”提示信息,页面处理流程终止。<%if(session.getAttribute("_CART_")==null){%>您还没有购物!!!<%}else{%><!--显示购物车中商品信息-->
5.3显示购物车■编程详解当系统为该会员生成了购物车,表明会员必定在购物车中存有商品,此时,使用Vector类的实例cart存放此购物车;然后,将购物车中的商品逐一取出,放入购物车临时对象CartGoods类的实例中进行金额计算等处理。5.3显示购物车■编程详解<formmethod="post"action="cartModify.jsp"name="form">…<%floatsum=0;//商品总金额
Vectorcart=(Vector)session.getAttribute(“_CAER_");for(inti=0;i<cart.size();i++){CartGoodscartGoods=(CartGoods)cart.elementAt(i);sum=sum+cartGoods.number*cartGoods.price;%>5.3显示购物车■编程详解会员在确认目前购物车的商品后,进而可以采取下一步继续购物、去收银台结账、清空购物车、修改数量等操作,页面设计相应的链接:<ahref="../product/main.jsp">继续购物</a>|<ahref="../cart/cartCheckOut.jsp">去收银台结账</a>|<ahref="../cart/cartClear.jsp">清空购物车</a>|<ahref="#">修改数量</a>5.3显示购物车■<usebean>与生成实例的关系●本质上是相同的,主要有两个方面的区别:
1)JavaBean方式实例的作用域由scope指定的,不限于本JSP页面,而new方式生成的实例对象的作用域限制在本页面。
2)使用new方式是一定会生成实例对象的,而使用<jsp:useBean>则不一定。5.4修改及清空购物车■功能说明及页面流程在session对象中获取该会员原有的购物车,遍历购物车中的商品,并以从cartShow.jsp接收传来的表单元素<input>中的商品数量为准,重新生成一个购物车,把原有商品逐一添加到新购物车中,如果商品购买的数量被修改成0,则不再添加。清除购物车,实现时将session对象的购物车删除,在购物车修改或删除后,页面返回cartShow.jsp。5.4修改及清空购物车■编程详解
使用session对象的getAttribute方法获取购物车,并将其存入Vector类对象cart中,生成新购物:Vectorcart=(Vector)session.getAttribute("_CART_");随后遍历购物车cart内的商品,每件商品的购买数量由页面参数numX获得,即request.getParameter("num"+i);将所有购买数量不为0的商品添加到新购物车newcart中:5.4修改及清空购物车■编程详解
for(inti=0;i<cart.size();i++){//取商品CartGoodscartGoods=(CartGoods)cart.elementAt(i);//每件商品的购买数量Stringnum=request.getParameter("num"+i);try{ intnewnum=Integer.parseInt(num); cartGoods.number=newnum; if(newnum!=0){//如果数量为0,相当于删除了这件商品 newcart.addElement(cartGoods); }}…5.4修改及清空购物车■编程详解
将新购物车newcart存至session的“_CART_”属性中,替换原有的购物车,完成修改操作:session.setAttribute("_CART_",newcart);response.sendRedirect("cartShow.jsp");在购物车修改结束后,调用response对象的sendRedirect方法,将此次对cartModify.jsp页面的请求重新定向到cartShow.jsp页面。5.4修改及清空购物车■编程详解
清空购物车在清空购物车cartClear.jsp页面上,使用session对象的removeAttribute方法,实际上不仅清除购物车中的商品,也删除了购物车,会员如果继续购物,将会重新生成购物车。
session.removeAttribute(“_CART_");5.4.3JSP的错误处理■JSP页面的错误处理JSP页面中主要有两种错误:编译时错误和运行时错误。编译时错误是JSP引擎在编译JSP源代码时出现的,编写JSP时的语法有错误,导致JSP容器无法将JSP网页编译成正确的文件。例如:500InternalServerError,500是指HTTP的错误状态码,因此是ServerError。5.4.3JSP的错误处理■JSP页面的错误处理编译时错误页面产生这种编译错误时,通常是JSP存在语法错误5.4.3JSP的错误处理■JSP页面的错误处理运行时错误则是在已编译好的JSP页面处理客户端的请求时出现的。异常处理机制(ExceptionHandling)会对错误做适当的处理,一般采用下列两种处理方法
1)在页面中使用try-catch结构处理异常
2)采用JSP提供的更加简洁有效的异常处理机制5.5生成订单■功能说明结账信息填写后点击“提交”,生成新订单并显示订单编号。 在后续的操作中会员可进入“查看订单”查看订单详细信息。5.5生成订单■生成订单的页面效果如图
5.5生成订单■
流程分析及设计
●设计数据库订单信息实体订单编号会员名称、真实姓名联系地址、联系电话付款方式、送货方式备注信息、出货标志、订单生成时间 是否出货,1:“出货”,0表示“未出货”
5.5生成订单■
流程分析及设计
●设计数据库订单明细实体订单明细实体包括订单明细编号、订单编号、商品编号、商品购买价格和数量属性。5.5生成订单■
流程分析及设计设计数据库订单信息表结构字段名数据类型为空主键默认值描述order_idvarchar(50)NoYes订单编号namevarchar(50)NoNULL会员名称real_namevarchar(50)YesNULL真实姓名addressvarchar(50)YesNULL联系地址mobilevarchar(50)YesNULL联系电话total_pricefloatYesNULL支付金额deliver_methodvarchar(50)YesNULL邮寄方式memovarchar(50)YesNULL备注信息delivery_signbitYesNULL出货标志create_timesmalldatetimeYesNULL订单生成时间payment_modevarchar(50)yesNULL送货方式5.5生成订单■
流程分析及设计
●设计数据库订单明细表结构字段名数据类型是否为空是否主键默认值描述idint(4)NoYesID(自动编号)order_idvarchar(50)订单编号product_idint(4)商品编号product_namevarchar(50)product_pricefloatNULL商品价格amountint(4)NULL商品数量5.5生成订单■
流程分析及设计
●设计数据库_数据表之间的关系
5.5生成订单■
流程分析及设计
●数据库订单表和订单明细表操作类设计操作订单表、订单明细表设计OrderDao、OrderItemDao两个数据库操作类添加相应数据库操作的方法5.5生成订单■订单生产的功能流程如图5.5生成订单■该功能相对复杂,主要涉及下述步骤:(1)在购物车显示页面页,添加跳转到生成订单页面;(2)在pages/cart文件夹下,新建页面cartCheckOut.jsp和cartToOrder.jsp页面,分别实现提交本次购物的订单基本资料,和生成本次所购购商品信息的订单;(3)在cartToOrder.jsp页面,先获取请求参数;5.5生成订单(4)生成订单信息实体类OrderEntity实例对象,将订单信息写入数据库。(5)获取购物车,遍历商品,以此资料填充实体类OrderItemEntity实例对象,并写入数据库。(6)修改商品信息表中的商品销售数量;(7)清空购物车,页面提示订单资料;5.5生成订单■编程详解(1)在购物车显示页面页,添加跳转到生成订单页面;在cartShow.jsp页面,添加代码:<ahref=“../cart/cartCheckOut.jsp”>去收银台结账</a>;(2)在pages/cart文件夹下,新建页面cartCheckOut.jsp和cartToOrder.jsp页面;5.5生成订单■编程详解(3)创建cartCheckOut.jsp页面,并设计提交表单,提交数据至cartToOrder.jsp;其中订单编号由方法StringUitl.createOrderId()自动产生,并显示;邮寄地址、备注由会员输入;其它字段根据商品编号,从数据库中获取。5.5生成订单■编程详解cartCheckOut.jsp页面中引入包java.util,调用函数StringUitl.createOrderId产生订单编号。引入会员实体类,存放从session中获取的会员信息:5.5生成订单■编程详解(4)生成订单信息实体类OrderEntity实例对象,将订单信息写入数据库。新建实体类:OrderEntityorder=newOrderEntity();依第(3)步要求获取订单表数据;
保存orderDao.insertOrder(order);
5.5生成订单■编程详解(5)获取购物车,遍历商品,以此资料填充实体类OrderItemEntity实例对象,并写入数据库。(6)修改商品信息表中的商品销售数量;
主要为后期商品销售统计之用(7)清空购物车,页面提示订单资料;5.5生成订单■编程详解第5章购物车模块■思考题1、购物车为什么保存为session对象的属性,能否保存在request对象或application对象上?2、在JSP页面中可以使用<jsp
:usebean>和<%new%>的形式都可以生成类的实例对象,这两种方法生产的实例有什么区别?3、JSP中有哪些常用错误处理方法?JavaWeb应用开发计算机与软件学院第6章基于MVC模式的订单模块■本章要点:
前台订单操作功能设计与实现后台订单操作功能设计与实现Servlet控制器设计与实现模型JavaBean业务操作设计与实现MVC开发模式JSP与Servlet关系6.1使用JSP+Servlet+JavaBean
实现订单操作■功能分析与设计前台:会员查看自己所有的订单在前台JSP页面(cartSelect.jsp)可以提交四种请求:
1.查看自己的所有订单
2.在自己所有的订单中查看已经出货的订单
3.在自己所有的订单中查看尚未出货的订单
4.查看自己某一订单的详细信息6.1使用JSP+Servlet+JavaBean
实现订单操作■功能分析与设计功能图6.1使用JSP+Servlet+JavaBean
实现订单操作■功能分析与设计操作流程6.1使用JSP+Servlet+JavaBean
实现订单操作■功能分析与设计
后台管理员:后台JSP页面,可以提交六种请求:
1.查看商城所有的订单
2.查看所有已经出货的订单
3.查看所有尚未出货的订单
4.查看某一订单的详细信息
5.对某一订单进行出货操作
6.删除某一订单6.1使用JSP+Servlet+JavaBean
实现订单操作■功能分析与设计功能图6.1使用JSP+Servlet+JavaBean
实现订单操作■功能分析与设计
●MVC开发模式
通常这种分层方式被称为MVC(ModelViewController)三层结构。请求由Controller(控制器)开始,分发给对应业务操作,Model(模型)代表的数据模型承担业务操作,最后将得到的结果送到View(视图)层显示。6.1使用JSP+Servlet+JavaBean
实现订单操作■订单显示开发流程(orderList.jsp)
登录会员点击“查看订单”菜单,向Servlet容器发送请求,Servlet容器接收客户请求,查询会员所有订单信息,最后将响应结果转发到订单显示页面。订单显示页面如下:6.1使用JSP+Servlet+JavaBean
实现订单操作■Servlet容器根据orderAction区分客户请求主要涉及:查当前用户订单:orderAction="orderAbstract"))返回:list=order.selectOrderByName(curUserName)orderAction.equals("orderDelivered")返回:list=order.selectOrderByNameAndDeliverySign(用户,出货标志);某个订单详细信息:orderAction="orderDetail"))返回:list=orderDetail.selectOrderDetailByNumber(orderId);6.1使用JSP+Servlet+JavaBean
实现订单操作■开发流程1.添加“查询订单”入口,发起的http请求。2.在类OrderDao.java中,定义查询会员订单的方法。3.创建Servlet控制器类OrderServlet.java,重写doPost()方法,在方法中完成业务逻辑:(1)获取会员请求类别信息,存到orderAction中;(2)响应http查询订单请求,执行相应的业务逻辑;(3)调用方法,从后台取得会员所有订单资料;(4)转发页面至orderList.jsp页面,显示订单信息。4.修改配置文件web.xml。5.创建订单显示页面orderList.jsp页面,从request中取得订单信息并显示。6.1使用JSP+Servlet+JavaBean
实现订单操作■显示订单详细开发流程概述(orderItemList.jsp
)
控制器orderAction和orderId的值,确定需执行的操作;其中第一个参数确定是显示详细订单信息,第二个参数是订单编号;形如,http://localhost:8080/estore/OrderServlet?orderAction=orderDetail&orderId=2014100711402202921386.1使用JSP+Servlet+JavaBean
实现订单操作■编程详解orderItemList.jsp1.添加查询入口,传递订单号orderId,发起http请求。2.添加方法OrderDetailDao.selectOrderDetailByNumber(StringorderId)。3.在doPost()中响应http“订单详细信息”请求,并完成业务处理。4.新建orderItemList.jsp页面,从request中取得订单详细集合,遍历集合,显示订单信息。6.1使用JSP+Servlet+JavaBean
实现订单操作■Servlet控制器OrderServlet.java的实现Servlet与JspJSP是一种特殊的Servlet,所有的JSP页面最终都会被服务器转换成Servlet来执行。JSP页面被请求时,服务器会先根据JSP页面生成Java文件,然后使用jdk的编译器将此文件编译,得到的class文件处理用户的请求并返回响应。再次请求JSP页面,服务器先检查JSP文件是否被修改过修改:重新生成Java,重新编译没有修改:直接运行上次的class文件
6.1使用JSP+Servlet+JavaBean
实现订单操作■Servlet控制器OrderServlet.java的实现●JSP文件运行过程图6.1使用JSP+Servlet+JavaBean
实现订单操作示例第一步:编写HelloServlet.java类,编译成class放在WEB-INF/classes下。packageservlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassHelloServletextends
HttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{PrintWriterout=response.getWriter();out.println("hello");}}HelloServlet在doGet()方法中获取response(响应),写入“hello”。6.1使用JSP+Servlet+JavaBean
实现订单操作示例第二步:修改WEB-INF目录下的web.xml,添加HelloServlet的配置信息。<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"version="2.4"><servlet><servlet-name>HlloeServlet</servlet-name><servlet-class>servlet.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/HelloServlet</url-pattern></servlet-mapping></web-app>6.1使用JSP+Servlet+JavaBean
实现订单操作示例运行结果如下:6.1使用JSP+Servlet+JavaBean
实现订单操作示例编写一个效果与HelloServlet完全一样的hello.jsp放在WEB-INF目录下运行结果6.1使用JSP+Servlet+JavaBean
实现订单操作示例Hello.jsp文件编译后所在文件目录图
在Catalina/localhost/org/apache/jsp目录下,可以看到两个文件,分别是hello_jsp.class和hello_jsp.java。6.1使用JSP+Servlet+JavaBean
实现订单操作■创建Servlet类OrderServlet.java(第一步)6.1使用JSP+Servlet+JavaBean
实现订单操作■创建Servlet类OrderServlet.java(第二步)6.1使用JSP+Servlet+JavaBean
实现订单操作■创建Servlet类OrderServlet.java(第三步)6.1使用JSP+Servlet+JavaBean
实现订单操作■创建Servlet类OrderServlet.java(第四步)
1)为OrderServlet添加方法和完善doPost()方法和doget()方法
2)OrderServlet控制器根据操作元素orderAction的值确定执行相应原动作:前台已经响应了orderList和orderDetails,和按出货状态查询的请求代码,后台主要涉及到下列标识orderDelivered,deliverySign是订单发货标志selectAllOrder是查询所有用户订单Despatch是根据获取的orderId设置出货状态deleteOrder是根据获取的orderId删除指定订单等实现了管理员对订单的增删改查要求。6.1使用JSP+Servlet+JavaBean
实现订单操作■创建Servlet类OrderServlet.java(第四步)为OrderServlet添加方法和完善doPost()方法和doget()方法
if(orderAction.equals("despatch")){//根据获取的orderId出货Listlist=newArrayList();Stringi=request.getParameter("i");if(i!=null)request.setAttribute("i",i);order.updateSignOrder(request.getParameter("orderId").toString());//更改出货状态list=order.selectAllOrder();//刷新订单显示request.setAttribute("AllOrder",list);request.getRequestDispatcher("pages/admin/order/orderSelect.jsp").forward(request,response);}6.1使用JSP+Servlet+JavaBean
实现订单操作■创建Servlet类OrderServlet.java(第四步)为OrderServlet添加方法和完善doPost()方法和doget()方法
//后台所有客户订单显示if(orderAction.equals("selectAllOrder")){//查询所有订单Listlist=newArrayList();Stringi=request.getParameter("i");if(i!=null)request.setAttribute("i",i);list=order.selectAllOrder();request.setAttribute("AllOrder",list);request.getRequestDispatcher("pages/admin/order/orderList.jsp").forward(request,response);}6.1使用JSP+Servlet+JavaBean
实现订单操作■创建Servlet类OrderServlet.java(第四步)为OrderServlet添加方法和完善doPost()方法和doget()方法if(orderAction.equals("deleteOrder")){//根据获取的orderId删除指定订单Listlist=newArrayList();Stringi=request.getParameter("i");if(i!=null)request.setAttribute("i",i);order.deleteOrder(request.getParameter("orderId").toString());//删除指定orderId订单list=order.selectAllOrder();//所有订单重新读取继续显示request.setAttribute("AllOrder",list);request.getRequestDispatcher("pages/admin/order/orderList.jsp").forward(request,response);}6.1使用JSP+Servlet+JavaBean
实现订单操作■创建Servlet类OrderServlet.java(第四步)为OrderServlet添加方法和完善doPost()方法和doget()方法其它增删改查的功能均与上述例子类似//若上述标志均不满足,则显示主页面else{//没有对应的action,显示主页面out.println("<script>parent.location.href='/estore/pages/product/main.jsp';</script>");}out.flush();out.close();…6.1使用JSP+Servlet+JavaBean
实现订单操作■模型和JavaBean
根据OrderServet方法调用请求,在OrderDao.java中添加相应的方法:6.1使用JSP+Servlet+JavaBean
实现订单操作■Servlet技术特性分析
Servlet可完成如下功能:
(1)创建动态完整的HTML页面(2)创建可嵌入的HTML片段(3)与其它服务器资源(包括数据库和基于Java的应用程序)进行通信(4)实时处理多个客户的请求(5)对特殊的处理采用MIME类型过滤数据,如图像转换(6)将定制的处理提供给所有服务器的标准例行程序。例如,Servlet可以修改如何认证用户6.2Servlet知识总结■Servlet的生命周期初始化 服务器创建一个Servlet实例并且调用Servlet的init()方法初始化Servlet装入:如果已配置自动装入选项,则在服务器启动时自动装入客户机首次向Servlet发出请求重新装入Servlet请求处理 服务器调用Servlet的service()方法,service()方法从“请求”对象获得请求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service()方法可以调用其它方法来处理请求,例如doGet()、doPost()或其它的方法。终止 当服务器不再需要Servlet,或重新装入Servlet的新实例时,服务器会调用Servlet的destroy()方法。6.2Servlet知识总结■JavaServletAPIinit()方法
在Servlet的生命期中,仅执行一次init()方法。在服务器装入Servlet时执行的。可以进行配置,在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()service()方法
service()方法是Servlet的核心。每当一个客户请求一个HttpServlet对象,该对象的service()方法就要被调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《计量日宣传》课件
- 《评价判据》课件
- 鼻结核的健康宣教
- 2021年机械密封行业中密控股分析报告
- 2021年化工行业分析报告
- 《机械制造基础》课件-05篇 第一单元 特种加工概述
- 《计算机检索基础周》课件
- 光过敏的临床护理
- 《供应商考核办法》课件
- 毛发苔藓的临床护理
- 北京市停工留薪期分类目录
- 第11课《宇宙生命之谜》阅读理解题含答案
- Unit+12+Innovation+Topic+Talk+教学设计 高中英语北师大版(2019)选择性必修第四册
- 尖子生与优生培养课件
- 第八章-高速铁路运输组织-课件
- 家族财富传承法商
- 皖北煤电集团总医院经开区分院建设项目环境影响报告
- 画法几何与机械制图全套PPT完整教学课件
- 信用修复申请文书(当事人适用)
- 小型水闸委托管理协议书
- 专项资金支出明细表参考模板范本
评论
0/150
提交评论