根据orderForm在XML配置文件中对应的
<servlet-name>Dispatcher</servlet-name>
<url-pattern>/orderForm</url-pattern>内容
去调用Dispatcher
doGet和
doPost是两种不同的方法..
如果某个类要成为Servlet,则它应该从HttpServlet 继承,根据数据是通过GET还是POST发送,覆盖doGet、doPost方法之一或全部。doGet和doPost方法都有两个参数,分别为HttpServletRequest 类型和HttpServletResponse 类型。HttpServletRequest提供访问有关请求的信息的方法,例如表单数据、HTTP请求头等等。HttpServletResponse除了提供用于指定HTTP应答状态(200,404等)、应答头(Content-Type,Set-Cookie等)的方法之外,最重要的是它提供了一个用于向客户端发送数据的PrintWriter 。对于简单的Servlet来说,它的大部分工作是通过println语句生成向客户端发送的页面。
注意doGet和doPost抛出两个异常,因此你必须在声明中包含它们。另外,你还必须导入java.io包(要用到PrintWriter等类)、javax.servlet包(要用到HttpServlet等类)以及javax.servlet.http包(要用到HttpServletRequest类和HttpServletResponse类)。
最后,doGet和doPost这两个方法是由service方法调用的,有时你可能需要直接覆盖service方法,比如Servlet要处理GET和POST两种请求时。
<servlet-name>Dispatcher</servlet-name>
<url-pattern>/orderForm</url-pattern>内容
去调用Dispatcher
doGet和
doPost是两种不同的方法..
如果某个类要成为Servlet,则它应该从HttpServlet 继承,根据数据是通过GET还是POST发送,覆盖doGet、doPost方法之一或全部。doGet和doPost方法都有两个参数,分别为HttpServletRequest 类型和HttpServletResponse 类型。HttpServletRequest提供访问有关请求的信息的方法,例如表单数据、HTTP请求头等等。HttpServletResponse除了提供用于指定HTTP应答状态(200,404等)、应答头(Content-Type,Set-Cookie等)的方法之外,最重要的是它提供了一个用于向客户端发送数据的PrintWriter 。对于简单的Servlet来说,它的大部分工作是通过println语句生成向客户端发送的页面。
注意doGet和doPost抛出两个异常,因此你必须在声明中包含它们。另外,你还必须导入java.io包(要用到PrintWriter等类)、javax.servlet包(要用到HttpServlet等类)以及javax.servlet.http包(要用到HttpServletRequest类和HttpServletResponse类)。
最后,doGet和doPost这两个方法是由service方法调用的,有时你可能需要直接覆盖service方法,比如Servlet要处理GET和POST两种请求时。
//orderForm.jsp
<%@ taglib uri="/jstl-c" prefix="c" %>
<%@ taglib uri="/jstl-fmt" prefix="fmt" %>
<%@ page import="java.util.*" %>
<%@ page errorPage="errorpage.jsp" %>
<%@ page contentType = "text/html;charset = gb2312" %>
<form action="<c:out value='${pageContext.request.contextPath}'/>/orderForm" method=post>
<center><table cellpadding=4 cellspacing=2 border=0><tr bgcolor="#A1C4EE">
<td colspan=4><fmt:message key="OrderInstructions"/></td>
</tr><tr>
<td colspan=4>
</td>
</tr><tr bgcolor="#CC9999">
<td align="center" colspan=4><font size=5><b><fmt:message key="StockPriceForm"/><b></font></td>
</tr><tr bgcolor="#CC9999">
<td align=center><B><fmt:message key="StockCode"/></B></td>
<td align=center><B><fmt:message key="Price"/></B></td>
<td align=center><B><fmt:message key="Quantity"/></B></td>
<td align=center><B><fmt:message key="Total"/></B></td>
</tr><c:forEach var="sci" items="${sessionScope.cart.items}" >
<tr bgcolor="#CC9999">
<td align=center><c:out value="${sci.item.coffeeName}" /></td>
<td align=center>$<c:out value="${sci.item.retailPricePerPound}" /></td>
<td align=center><input type="text" name="<c:out value='${sci.item.coffeeName}' />_pounds" value="<c:out value='${sci.pounds}' />" size="3" maxlength="3"></td>
<td align=center>$<c:out value="${sci.price}" /></td>
</tr>
</c:forEach><tr>
<td> </td>
<td>
<a href="<c:out value='${pageContext.request.contextPath}'/>/checkoutForm?firstName=Coffee&lastName=Lover&email=jane@home&areaCode=123&phoneNumber=456-7890&street=99&city=Somewhere&state=CA&zip=95050&CCNumber=1234-2345-5678&CCOption=0"><fmt:message key='Checkout'/></a>
</td>
<td><input type="submit" value="<fmt:message key='Update'/>"></td>
<td align=right>$<c:out value="${sessionScope.cart.total}" /></td>
<td> </td>
</tr>
<tr>
<td colspan=5><c:out value="${requestScope.orderError}" /></td>
</tr>
</table>
</center>
</form>