理解j model 2架构体系(4)_JSP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

理解j model 2架构体系(4)

作者:黑客防线网安JSP教程基地 来源:黑客防线网安JSP教程基地 浏览次数:0

本篇关键词:体系架构理解 
黑客防线网安网讯:    CDBean:package shopping;public class CD {  String album;  String artist;  String country;  float price;  int quantity;  public CD() {    album="";    artist="";    country...

    CDBean:
package shopping;
public class CD {
  String album;
  String artist;
  String country;
  float price;
  int quantity;
  public CD() {
    album="";
    artist="";
    country="";
    price=0;
    quantity=0;
  }
  public void setAlbum(String title) {
    album=title;
  }
  public String getAlbum() {
    return album;
  }
  public void setArtist(String group) {
    artist=group;
  }
  public String getArtist() {
    return artist;
  }
  public void setCountry(String cty) {
    country=cty;
  }
  public String getCountry() {
    return country;
  }
  public void setPrice(float p) {
    price=p;
  }
  public float getPrice() {
    return price;
  }
  public void setQuantity(int q) {
    quantity=q;
  }
  public int getQuantity() {
    return quantity;
  }
}
 


可见我们在servlets包括一了一些额外的智能化的处理那就是如果一种商品在购物车里面已经有了,当他再次被选择的时候,我们只是增加了其的数量,其中控制器也处理cart.jsp所触发的动作,比如用户删除了购物车中的商品和处理柜台结账等等,控制器还负责页面之间的一些跳转,比如用户选择结账,那么页面就会跳转到结账页面去:代码如下:
String url="/jsp/shopping/Checkout.jsp";
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(url);
rd.forward(req,res);


checkout.jsp:
<%@ page session="true" import="java.util.*, shopping.CD" %>
<html>
<head>
<title>Music Without Borders Checkout</title>
</head>
<body bgcolor="#33CCFF">
 <font face="Times New Roman,Times" size=+3>
  Music Without Borders Checkout
 </font>
 <hr><p>
 <center>
 <table border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
 <tr>
 <td><b>ALBUM</b></td>
 <td><b>ARTIST</b></td>
 <td><b>COUNTRY</b></td>
 <td><b>PRICE</b></td>
 <td><b>QUANTITY</b></td>
 <td></td>
 </tr>
 <%
  Vector buylist = (Vector) session.getValue("shopping.shoppingcart");
  String amount = (String) request.getAttribute("amount");
  for (int i=0; i < buylist.size();i++) {
   CD anOrder = (CD) buylist.elementAt(i);
 %>
 <tr>
 <td><b><%= anOrder.getAlbum() %></b></td>
 <td><b><%= anOrder.getArtist() %></b></td>
 <td><b><%= anOrder.getCountry() %></b></td>
 <td><b><%= anOrder.getPrice() %></b></td>
 <td><b><%= anOrder.getQuantity() %></b></td>
 </tr>
 <%
  }
  session.invalidate();
 %>
 <tr>
 <td>     </td>
 <td>     </td>
 <td><b>TOTAL</b></td>
 <td><b>$<%= amount %></b></td>
 <td>     </td>
 </tr>
 </table>
 <p>
 <a href="/examples/jsp/shopping/EShop.jsp">Shop some more!</a>
 </center>
</body>
</html>

结账的页面列出了session中的购物车,并且计算出价钱的总和;在页面的尾部,我们调用了session.invalidate(),这点很重要,因为如果不调用,那么,在结账之后,用户的购物车不会再次初始化,当用户再次购物的时候,那么他在选择结账的时候不得不为他已经买单了的物品踩在消费,第二点就是,如果用户结账离开了,那么session里面的对象不会被垃圾回收,会继续占用服务端的系统资源知道session有效期剩下的时间失效,session的默认失效时间是30分钟,那么系统将在剩下的时间内内存将搞负荷的工作,当然,我们都知道一个应用在超出系统资源环境下工作的后果;

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-16722-1.html
网站维护教程更新时间:2012-04-07 00:46:05  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer