为什么我这两种方法访问的结果会不一样? 不时的。现在我知道前一种是通过servlet响应的。后一种就是jsp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对的,http://localhost:8080/cbserver/orderForm这是运行Servlet的一种方式,http://localhost:8080/cbserver/orderForm.jsp也可以配置成Servlet来运行的。 哦谢谢~邦我看看这个吧http://expert.csdn.net/Expert/topic/1729/1729429.xml?temp=.246319 哦谢谢~邦我看看这个吧http://expert.csdn.net/Expert/topic/1729/1729429.xml?temp=.246319 "不时的。现在我知道前一种是通过servlet响应的。后一种就是jsp"好像不大对阿?我现在有搞糊涂了。http://localhost:8080/cbserver/orderForm这样的地址我怎么知道到底是servlet还是jsp在相应啊?还有linqi(linqi)你说的:jsp也可以配置成servlet运行的?怎么个配置发啊??谢谢 我把文件部分贴出来,大家帮我看看吧!---web.xml<servlet> <servlet-name>Dispatcher</servlet-name> <display-name>Dispatcher</display-name> <servlet-class>com.sun.cb.Dispatcher</servlet-class> </servlet> <servlet> <servlet-name>RetailPriceListServlet</servlet-name> <display-name>RetailPriceListServlet</display-name> <servlet-class>com.sun.cb.RetailPriceListServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Dispatcher</servlet-name> <url-pattern>/orderForm</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Dispatcher</servlet-name> <url-pattern>/checkoutForm</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Dispatcher</servlet-name> <url-pattern>/checkoutAck</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>RetailPriceListServlet</servlet-name> <url-pattern>/loadPriceList</url-pattern> </servlet-mapping>-----orderForm.jsp<%@ taglib uri="/jstl-c" prefix="c" %><%@ taglib uri="/jstl-fmt" prefix="fmt" %><%@ page import="java.util.*" %><%@ page errorPage="errorpage.jsp" %><form action="<c:out value='${pageContext.request.contextPath}'/>/orderForm" method=post><center><table cellpadding=4 cellspacing=2 border=0><tr><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="OrderForm"/><b></font></td></tr><tr bgcolor="#CC9999"><td align=center><B><fmt:message key="Coffee"/></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><c:out value="${sci.item.coffeeName}" /></td><td align=right>$<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=right>$<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> 邦我分析一下这个代码吧:现在我不懂得是,当我请求http://localhost:8080/cbserver/orderForm这个地址的时候,他来的显示内容格式这种代码我怎么没有发现阿?他这里好像是取得数据阿,没有显示阿,他怎么显示的呢?还有request.getRequestDispatcher("/template.jsp").forward(request, response);这行代码试什么意思??//Dispatcher.javaimport javax.servlet.*;import javax.servlet.http.*;import java.util.*;import java.math.BigDecimal;public class Dispatcher extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); ResourceBundle messages = (ResourceBundle)session.getAttribute("messages"); if (messages == null) { Locale locale=request.getLocale(); messages = ResourceBundle.getBundle("com.sun.cb.messages.CBMessages", locale); session.setAttribute("messages", messages); } ServletContext context = getServletContext(); RetailPriceList rpl = (RetailPriceList)context.getAttribute("retailPriceList"); if (rpl == null) { try { rpl = new RetailPriceList(); context.setAttribute("retailPriceList", rpl); } catch (Exception ex) { context.log("Couldn't create price list: " + ex.getMessage()); } } ShoppingCart cart = (ShoppingCart)session.getAttribute("cart"); if (cart == null) { cart = new ShoppingCart(rpl); session.setAttribute("cart", cart); } String selectedScreen = request.getServletPath(); request.setAttribute("selectedScreen", selectedScreen); if (selectedScreen.equals("/checkoutForm")) { CheckoutFormBean checkoutFormBean = new CheckoutFormBean(cart, rpl, messages); request.setAttribute("checkoutFormBean", checkoutFormBean); try { checkoutFormBean.setFirstName(request.getParameter("firstName")); checkoutFormBean.setLastName(request.getParameter("lastName")); checkoutFormBean.setEmail(request.getParameter("email")); checkoutFormBean.setAreaCode(request.getParameter("areaCode")); checkoutFormBean.setPhoneNumber(request.getParameter("phoneNumber")); checkoutFormBean.setStreet(request.getParameter("street")); checkoutFormBean.setCity(request.getParameter("city")); checkoutFormBean.setState(request.getParameter("state")); checkoutFormBean.setZip(request.getParameter("zip")); checkoutFormBean.setCCNumber(request.getParameter("CCNumber")); checkoutFormBean.setCCOption(Integer.parseInt(request.getParameter("CCOption"))); } catch (NumberFormatException e) { // not possible } } try { request.getRequestDispatcher("/template.jsp").forward(request, response); } catch(Exception ex) { ex.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); ResourceBundle messages = (ResourceBundle)session.getAttribute("messages"); String selectedScreen = request.getServletPath(); request.setAttribute("selectedScreen", selectedScreen); ServletContext context = getServletContext(); RetailPriceList rpl = (RetailPriceList)context.getAttribute("retailPriceList"); if (rpl == null) { try { rpl = new RetailPriceList(); context.setAttribute("retailPriceList", rpl); } catch (Exception ex) { context.log("Couldn't create price list: " + ex.getMessage()); } } ShoppingCart cart = (ShoppingCart)session.getAttribute("cart"); if (cart == null ) { cart = new ShoppingCart(rpl); session.setAttribute("cart", cart); } if (selectedScreen.equals("/orderForm")) { cart.clear(); for(Iterator i = rpl.getItems().iterator(); i.hasNext(); ) { RetailPriceItem item = (RetailPriceItem) i.next(); String coffeeName = item.getCoffeeName(); BigDecimal pounds = new BigDecimal(request.getParameter(coffeeName + "_pounds")); BigDecimal price = item.getRetailPricePerPound().multiply(pounds).setScale(2, BigDecimal.ROUND_HALF_UP); ShoppingCartItem sci = new ShoppingCartItem(item, pounds, price); cart.add(sci); } } else if (selectedScreen.equals("/checkoutAck")) { CheckoutFormBean checkoutFormBean = new CheckoutFormBean(cart, rpl, messages); request.setAttribute("checkoutFormBean", checkoutFormBean); try { checkoutFormBean.setFirstName(request.getParameter("firstName")); checkoutFormBean.setLastName(request.getParameter("lastName")); checkoutFormBean.setEmail(request.getParameter("email")); checkoutFormBean.setAreaCode(request.getParameter("areaCode")); checkoutFormBean.setPhoneNumber(request.getParameter("phoneNumber")); checkoutFormBean.setStreet(request.getParameter("street")); checkoutFormBean.setCity(request.getParameter("city")); checkoutFormBean.setState(request.getParameter("state")); checkoutFormBean.setZip(request.getParameter("zip")); checkoutFormBean.setCCNumber(request.getParameter("CCNumber")); checkoutFormBean.setCCOption(Integer.parseInt(request.getParameter("CCOption"))); } catch (NumberFormatException e) { // not possible } if (!checkoutFormBean.validate()) request.setAttribute("selectedScreen", "/checkoutForm"); } try { request.getRequestDispatcher("/template.jsp").forward(request, response); } catch(Exception e) { } }} servlet是如何获取数据库数据的(新人) SSH+proxool问题!! 两个下拉框的问题 求高手解答 请ssh框架高手帮忙修改一个WEB项目 关于java动态特性的问题,怎样调用未知类的未知方法? 关于浮动框架的问题,在线等。。。。。。 求助 关于JSON 相当纠结! org.apache.cxf.binding.soap.SoapFault: Couldn't parse stream. 用jeecg完成的一个图书馆管理的小项目 怎么做代码检查 寻找JSp+XML的留言板! 表单的问题?
这是运行Servlet的一种方式,http://localhost:8080/cbserver/orderForm.jsp也可以配置成Servlet来运行的。
邦我看看这个吧
http://expert.csdn.net/Expert/topic/1729/1729429.xml?temp=.246319
邦我看看这个吧
http://expert.csdn.net/Expert/topic/1729/1729429.xml?temp=.246319
好像不大对阿?我现在有搞糊涂了。http://localhost:8080/cbserver/orderForm这样的地址我怎么知道到底是servlet还是jsp在相应啊?
还有linqi(linqi)你说的:jsp也可以配置成servlet运行的?怎么个配置发啊??谢谢
---web.xml
<servlet>
<servlet-name>Dispatcher</servlet-name>
<display-name>Dispatcher</display-name>
<servlet-class>com.sun.cb.Dispatcher</servlet-class>
</servlet>
<servlet>
<servlet-name>RetailPriceListServlet</servlet-name>
<display-name>RetailPriceListServlet</display-name>
<servlet-class>com.sun.cb.RetailPriceListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Dispatcher</servlet-name>
<url-pattern>/orderForm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Dispatcher</servlet-name>
<url-pattern>/checkoutForm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Dispatcher</servlet-name>
<url-pattern>/checkoutAck</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RetailPriceListServlet</servlet-name>
<url-pattern>/loadPriceList</url-pattern>
</servlet-mapping>
-----orderForm.jsp
<%@ taglib uri="/jstl-c" prefix="c" %>
<%@ taglib uri="/jstl-fmt" prefix="fmt" %>
<%@ page import="java.util.*" %>
<%@ page errorPage="errorpage.jsp" %><form action="<c:out value='${pageContext.request.contextPath}'/>/orderForm" method=post>
<center><table cellpadding=4 cellspacing=2 border=0><tr>
<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="OrderForm"/><b></font></td>
</tr><tr bgcolor="#CC9999">
<td align=center><B><fmt:message key="Coffee"/></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><c:out value="${sci.item.coffeeName}" /></td>
<td align=right>$<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=right>$<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>
request.getRequestDispatcher("/template.jsp").forward(request, response);
这行代码试什么意思??//Dispatcher.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.math.BigDecimal;public class Dispatcher extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
ResourceBundle messages = (ResourceBundle)session.getAttribute("messages");
if (messages == null) {
Locale locale=request.getLocale();
messages = ResourceBundle.getBundle("com.sun.cb.messages.CBMessages", locale);
session.setAttribute("messages", messages);
} ServletContext context = getServletContext();
RetailPriceList rpl = (RetailPriceList)context.getAttribute("retailPriceList");
if (rpl == null) {
try {
rpl = new RetailPriceList();
context.setAttribute("retailPriceList", rpl);
} catch (Exception ex) {
context.log("Couldn't create price list: " + ex.getMessage());
}
}
ShoppingCart cart = (ShoppingCart)session.getAttribute("cart");
if (cart == null) {
cart = new ShoppingCart(rpl);
session.setAttribute("cart", cart);
}
String selectedScreen = request.getServletPath();
request.setAttribute("selectedScreen", selectedScreen); if (selectedScreen.equals("/checkoutForm")) {
CheckoutFormBean checkoutFormBean = new CheckoutFormBean(cart, rpl, messages); request.setAttribute("checkoutFormBean", checkoutFormBean);
try {
checkoutFormBean.setFirstName(request.getParameter("firstName"));
checkoutFormBean.setLastName(request.getParameter("lastName"));
checkoutFormBean.setEmail(request.getParameter("email"));
checkoutFormBean.setAreaCode(request.getParameter("areaCode"));
checkoutFormBean.setPhoneNumber(request.getParameter("phoneNumber"));
checkoutFormBean.setStreet(request.getParameter("street"));
checkoutFormBean.setCity(request.getParameter("city"));
checkoutFormBean.setState(request.getParameter("state"));
checkoutFormBean.setZip(request.getParameter("zip"));
checkoutFormBean.setCCNumber(request.getParameter("CCNumber"));
checkoutFormBean.setCCOption(Integer.parseInt(request.getParameter("CCOption")));
} catch (NumberFormatException e) {
// not possible
}
}
try {
request.getRequestDispatcher("/template.jsp").forward(request, response);
} catch(Exception ex) {
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
ResourceBundle messages = (ResourceBundle)session.getAttribute("messages");
String selectedScreen = request.getServletPath();
request.setAttribute("selectedScreen", selectedScreen); ServletContext context = getServletContext();
RetailPriceList rpl = (RetailPriceList)context.getAttribute("retailPriceList");
if (rpl == null) {
try {
rpl = new RetailPriceList();
context.setAttribute("retailPriceList", rpl);
} catch (Exception ex) {
context.log("Couldn't create price list: " + ex.getMessage());
}
}
ShoppingCart cart = (ShoppingCart)session.getAttribute("cart");
if (cart == null ) {
cart = new ShoppingCart(rpl);
session.setAttribute("cart", cart);
}
if (selectedScreen.equals("/orderForm")) {
cart.clear();
for(Iterator i = rpl.getItems().iterator(); i.hasNext(); ) {
RetailPriceItem item = (RetailPriceItem) i.next();
String coffeeName = item.getCoffeeName();
BigDecimal pounds = new BigDecimal(request.getParameter(coffeeName + "_pounds"));
BigDecimal price = item.getRetailPricePerPound().multiply(pounds).setScale(2, BigDecimal.ROUND_HALF_UP);
ShoppingCartItem sci = new ShoppingCartItem(item, pounds, price);
cart.add(sci);
} } else if (selectedScreen.equals("/checkoutAck")) {
CheckoutFormBean checkoutFormBean = new CheckoutFormBean(cart, rpl, messages); request.setAttribute("checkoutFormBean", checkoutFormBean);
try {
checkoutFormBean.setFirstName(request.getParameter("firstName"));
checkoutFormBean.setLastName(request.getParameter("lastName"));
checkoutFormBean.setEmail(request.getParameter("email"));
checkoutFormBean.setAreaCode(request.getParameter("areaCode"));
checkoutFormBean.setPhoneNumber(request.getParameter("phoneNumber"));
checkoutFormBean.setStreet(request.getParameter("street"));
checkoutFormBean.setCity(request.getParameter("city"));
checkoutFormBean.setState(request.getParameter("state"));
checkoutFormBean.setZip(request.getParameter("zip"));
checkoutFormBean.setCCNumber(request.getParameter("CCNumber"));
checkoutFormBean.setCCOption(Integer.parseInt(request.getParameter("CCOption")));
} catch (NumberFormatException e) {
// not possible
}
if (!checkoutFormBean.validate())
request.setAttribute("selectedScreen", "/checkoutForm");
} try {
request.getRequestDispatcher("/template.jsp").forward(request, response);
} catch(Exception e) {
}
}
}