不时的。现在我知道前一种是通过servlet响应的。后一种就是jsp

解决方案 »

  1.   

    对的,http://localhost:8080/cbserver/orderForm
    这是运行Servlet的一种方式,http://localhost:8080/cbserver/orderForm.jsp也可以配置成Servlet来运行的。
      

  2.   

    哦谢谢~
    邦我看看这个吧
    http://expert.csdn.net/Expert/topic/1729/1729429.xml?temp=.246319
      

  3.   

    哦谢谢~
    邦我看看这个吧
    http://expert.csdn.net/Expert/topic/1729/1729429.xml?temp=.246319
      

  4.   

    "不时的。现在我知道前一种是通过servlet响应的。后一种就是jsp"
    好像不大对阿?我现在有搞糊涂了。http://localhost:8080/cbserver/orderForm这样的地址我怎么知道到底是servlet还是jsp在相应啊?
    还有linqi(linqi)你说的:jsp也可以配置成servlet运行的?怎么个配置发啊??谢谢
      

  5.   

    我把文件部分贴出来,大家帮我看看吧!
    ---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>
    &nbsp;</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>&nbsp;</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>&nbsp;</td>
    </tr><tr>
    <td colspan=5><c:out value="${requestScope.orderError}" /></td>
    </tr>
    </table>
    </center>
    </form>
      

  6.   

    邦我分析一下这个代码吧:现在我不懂得是,当我请求http://localhost:8080/cbserver/orderForm这个地址的时候,他来的显示内容格式这种代码我怎么没有发现阿?他这里好像是取得数据阿,没有显示阿,他怎么显示的呢?还有
    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) {
        }
      }
    }