zoukankan      html  css  js  c++  java
  • 【jsp】案例:显示商品列表 & 问题:List内添加元素,为什么值都变成一样的了

    代码:

    1.Product:

     1 package domain;
     2 
     3 public class Product {
     4     
     5 /*    `pid` varchar(50) NOT NULL,
     6       `pname` varchar(150) DEFAULT NULL,
     7       `market_price` double DEFAULT NULL,
     8       `shop_price` double DEFAULT NULL,
     9       `pimage` varchar(200) DEFAULT NULL,
    10       `pdate` date DEFAULT NULL,
    11       `is_hot` int(11) DEFAULT NULL,
    12       `pdesc` varchar(255) DEFAULT NULL,
    13       `pflag` int(11) DEFAULT NULL,
    14       `cid` varchar(50) DEFAULT NULL,
    15       PRIMARY KEY (`pid`)*/
    16     
    17     private String pid;
    18     private String pname;
    19     private double market_price;
    20     private double shop_price;
    21     private String pimage;
    22     private String pdate;
    23     private int is_hot;
    24     private String pdesc;
    25     private int pflag;
    26     private String cid;
    27     
    28     public Product(){
    29         pid="";
    30         pname="";
    31         pimage="";
    32         pdate="";
    33         pdesc="";
    34         cid="";
    35     }
    36     
    37     public String getPid() {
    38         return pid;
    39     }
    40     public void setPid(String pid) {
    41         this.pid = pid;
    42     }
    43     public String getPname() {
    44         return pname;
    45     }
    46     public void setPname(String pname) {
    47         this.pname = pname;
    48     }
    49     public double getMarket_price() {
    50         return market_price;
    51     }
    52     public void setMarket_price(double market_price) {
    53         this.market_price = market_price;
    54     }
    55     public double getShop_price() {
    56         return shop_price;
    57     }
    58     public void setShop_price(double shop_price) {
    59         this.shop_price = shop_price;
    60     }
    61     public String getPimage() {
    62         return pimage;
    63     }
    64     public void setPimage(String pimage) {
    65         this.pimage = pimage;
    66     }
    67     public String getPdate() {
    68         return pdate;
    69     }
    70     public void setPdate(String pdate) {
    71         this.pdate = pdate;
    72     }
    73     public int getIs_hot() {
    74         return is_hot;
    75     }
    76     public void setIs_hot(int is_hot) {
    77         this.is_hot = is_hot;
    78     }
    79     public String getPdesc() {
    80         return pdesc;
    81     }
    82     public void setPdesc(String pdesc) {
    83         this.pdesc = pdesc;
    84     }
    85     public int getPflag() {
    86         return pflag;
    87     }
    88     public void setPflag(int pflag) {
    89         this.pflag = pflag;
    90     }
    91     public String getCid() {
    92         return cid;
    93     }
    94     public void setCid(String cid) {
    95         this.cid = cid;
    96     }
    97     
    98 }

    2.ProductListD

     1 package dao;
     2 
     3 import java.sql.*;
     4 import java.util.ArrayList;
     5 import java.util.List;
     6 
     7 import domain.Product;
     8 
     9 public class ProductListDao {
    10 
    11     public List<Product> getAllProduct(){
    12         List<Product> productList=new ArrayList<Product>();//List是接口,不能直接new List
    13 //        Product product=new Product();//不能只定义一个变量,页面上只显示最后一个商品
    14         
    15         try {
    16             Class.forName("com.mysql.jdbc.Driver");
    17         } catch (ClassNotFoundException e) {
    18             e.printStackTrace();
    19         }
    20         try {
    21             Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/web17","root","root");
    22             PreparedStatement ps=con.prepareStatement("select * from product");
    23             ResultSet rs=ps.executeQuery();
    24 //            int i=0;
    25             while(rs.next()) {
    26                 Product product=new Product();
    27                 
    28                 product.setPid(rs.getString(1));
    29                 product.setPname(rs.getString(2));
    30                 product.setMarket_price(rs.getInt(3));
    31                 product.setShop_price(rs.getInt(4));
    32                 product.setPimage(rs.getString(5));
    33                 product.setPdate(rs.getString(6));
    34                 product.setIs_hot(rs.getInt(7));
    35                 product.setPdate(rs.getString(8));
    36                 product.setPflag(rs.getInt(9));
    37                 product.setCid(rs.getString(10));
    38                 
    39 //                System.out.println(product.getPname());
    40                 productList.add(product);
    41 //                System.out.println(productList.get(i).getPname());
    42 //                i++;
    43             }
    44             
    45             rs.close();
    46             ps.close();
    47             con.close();
    48         } catch (SQLException e) {
    49             e.printStackTrace();
    50         }
    51         
    52         return productList;
    53     }
    54     
    55 }

    3.ProductListServlet

     1 package servlet;
     2 
     3 import java.io.IOException;
     4 import java.util.List;
     5 
     6 import javax.servlet.ServletException;
     7 import javax.servlet.http.HttpServlet;
     8 import javax.servlet.http.HttpServletRequest;
     9 import javax.servlet.http.HttpServletResponse;
    10 
    11 import dao.ProductListDao;
    12 import domain.Product;
    13 
    14 public class ProductListServlet extends HttpServlet {
    15 
    16     protected void doGet(HttpServletRequest request, HttpServletResponse response)
    17             throws ServletException, IOException {
    18 
    19         ProductListDao productListDao=new ProductListDao();
    20         List<Product> productList=productListDao.getAllProduct();
    21 //        System.out.println(productList.isEmpty());
    22         
    23         request.setAttribute("productList", productList);
    24         request.getRequestDispatcher("/product_list.jsp").forward(request, response);
    25         
    26     }
    27 
    28     protected void doPost(HttpServletRequest request, HttpServletResponse response)
    29             throws ServletException, IOException {
    30         doGet(request, response);
    31     }
    32 
    33 }

    4.product_list.jsp

      1 <%@ page language="java" contentType="text/html; charset=UTF-8"
      2     pageEncoding="UTF-8"%>
      3 <%@ page import="java.util.*"%>
      4 <%@ page import="domain.*"%>
      5 <!DOCTYPE html>
      6 <html>
      7 <head>
      8 <meta name="viewport" content="width=device-width, initial-scale=1">
      9 <title>会员登录</title>
     10 <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
     11 <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>
     12 <script src="js/bootstrap.min.js" type="text/javascript"></script>
     13 <!-- 引入自定义css文件 style.css -->
     14 <link rel="stylesheet" href="css/style.css" type="text/css" />
     15 
     16 <style>
     17 body {
     18     margin-top: 20px;
     19     margin: 0 auto;
     20      100%;
     21 }
     22 
     23 .carousel-inner .item img {
     24      100%;
     25     height: 300px;
     26 }
     27 </style>
     28 </head>
     29 
     30 <body>
     31 
     32 
     33     <!-- 引入header.jsp -->
     34     <jsp:include page="/header.jsp"></jsp:include>
     35 
     36 
     37     <div class="row" style=" 1210px; margin: 0 auto;">
     38         <div class="col-md-12">
     39             <ol class="breadcrumb">
     40                 <li><a href="#">首页</a></li>
     41             </ol>
     42         </div>
     43 
     44         <%
     45             List<Product> productList = (List<Product>) request.getAttribute("productList");
     46 
     47             if (productList != null) {
     48                 for (Product product : productList) {
     49 
     50                     out.write("<div class='col-md-2'>");
     51                     out.write("<a href='product_info.htm'> <img src='"+product.getPimage()+"' width='170' height='170' style='display: inline-block;'>");
     52                     out.write("</a>");
     53                     out.write("<p>");
     54                     out.write("<a href='product_info.html' style='color: green'>"+product.getPname()+"</a>");
     55                     out.write("</p>");
     56                     out.write("<p>");
     57                     out.write("<font color='#FF0000'>商城价:&yen;"+product.getShop_price()+"</font>");
     58                     out.write("</p>");
     59                     out.write("</div>");
     60 
     61                 }
     62             }
     63         %>
     64 
     65     </div>
     66 
     67     <!--分页 -->
     68     <div style=" 380px; margin: 0 auto; margin-top: 50px;">
     69         <ul class="pagination" style="text-align: center; margin-top: 10px;">
     70             <li class="disabled"><a href="#" aria-label="Previous"><span
     71                     aria-hidden="true">&laquo;</span></a></li>
     72             <li class="active"><a href="#">1</a></li>
     73             <li><a href="#">2</a></li>
     74             <li><a href="#">3</a></li>
     75             <li><a href="#">4</a></li>
     76             <li><a href="#">5</a></li>
     77             <li><a href="#">6</a></li>
     78             <li><a href="#">7</a></li>
     79             <li><a href="#">8</a></li>
     80             <li><a href="#">9</a></li>
     81             <li><a href="#" aria-label="Next"> <span aria-hidden="true">&raquo;</span>
     82             </a></li>
     83         </ul>
     84     </div>
     85     <!-- 分页结束 -->
     86 
     87     <!--商品浏览记录-->
     88     <div
     89         style=" 1210px; margin: 0 auto; padding: 0 9px; border: 1px solid #ddd; border-top: 2px solid #999; height: 246px;">
     90 
     91         <h4 style=" 50%; float: left; font: 14px/30px 微软雅黑">浏览记录</h4>
     92         <div style=" 50%; float: right; text-align: right;">
     93             <a href="">more</a>
     94         </div>
     95         <div style="clear: both;"></div>
     96 
     97         <div style="overflow: hidden;">
     98 
     99             <ul style="list-style: none;">
    100                 <li
    101                     style=" 150px; height: 216; float: left; margin: 0 8px 0 0; padding: 0 18px 15px; text-align: center;"><img
    102                     src="products/1/cs10001.jpg" width="130px" height="130px" /></li>
    103             </ul>
    104 
    105         </div>
    106     </div>
    107 
    108 
    109     <!-- 引入footer.jsp -->
    110     <jsp:include page="/footer.jsp"></jsp:include>
    111 
    112 </body>
    113 
    114 </html>

    结果:

    http://localhost:8080/WEB17_2/ProductListServlet

    注意:

    加入List内的元素只保存了地址,而不是复制元素。将元素加入List后,修改该元素值,会影响到List内的元素值。所以每次放入一个新元素都需要new一个新地址。否则结果只有最后一个元素值,前面的元素值都被覆盖了。

  • 相关阅读:
    Redis史上最全文章教程
    一目了然的 Node.js Windows10 安装篇
    maven 报错 Failed to execute goal on project ...: Could not resolve dependencies for project ...
    SpringCloud 的版本问题 (深入)
    shell编程题(二十八)
    shell编程题(二十七)
    shell编程题(二十六)
    C++之Boost Asio相关
    C++之function函数
    C++之正则表达式
  • 原文地址:https://www.cnblogs.com/musecho/p/11254412.html
Copyright © 2011-2022 走看看