大二上每日总结

今日完成了讲解视频中JSP+JavaBean模式实现商品信息展示的案例。

案例可以显示商品信息,点击图片可以查看商品详细信息,并可以查看最近五次浏览记录。

效果截图:

 案例中使用了三个java类:

 Items 商品类:

private int id;
    private String name;
    private String city;
    private int price;
    private int number;
    private String picture;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public String getPicture() {
        return picture;
    }
    public void setPicture(String picture) {
        this.picture = picture;
    }

DBHelper连接数据库类:

private static String driver="com.mysql.jdbc.Driver";
    private static String url = "jdbc:mysql://localhost:3306/classname?useUnicode=true&characterEncoding=UTF-8"; //数据库名
    private static String username = "root";  //数据库用户名
    private static String password = "123456";  //数据库用户密码
    private static Connection conn=null;
    static
    {
        try
        {
            Class.forName(driver);
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
    public static Connection getConnection() throws SQLException
    {
        if(conn==null)
        {
            conn=  DriverManager.getConnection(url,username,password);
        }
        return  conn;
    }
    public static void main(String[] args)
    {
        try
        {
            Connection conn=DBHelper.getConnection();
            if(conn!=null)
            {
                System.out.println("数据库连接正常");
            }
            else
            {
                System.out.println("数据库连接异常");
            }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }

 ItemsDAO业务逻辑类:

public ArrayList<Items> getAllItems()
    {
        Connection conn=null;
        PreparedStatement stmt=null;
        ResultSet rs=null;
        ArrayList<Items> list=new ArrayList<Items>();
        try
        {
            conn=DBHelper.getConnection();
            String sql="select * from items;";
            stmt=conn.prepareStatement(sql);
            rs=stmt.executeQuery();
            while(rs.next())
            {
                Items item=new Items();
                item.setId(rs.getInt("id"));
                item.setName(rs.getString("name"));
                item.setCity(rs.getString("city"));
                item.setNumber(rs.getInt("number"));
                item.setPrice(rs.getInt("price"));
                item.setPicture(rs.getString("picture"));
                list.add(item);
            }
            return list;
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
            return null;
        }
        finally
        {
            if(rs!=null)
            {
                try
                {
                    rs.close();
                    rs=null;
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
            }
            if(stmt!=null)
            {
                try
                {
                    stmt.close();
                    stmt=null;
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
            }
        }
    }
    public Items getItemsById(int id)
    {
        Connection conn=null;
        PreparedStatement stmt=null;
        ResultSet rs=null;
        try
        {
            conn=DBHelper.getConnection();
            String sql="select * from items where id=?;";
            stmt=conn.prepareStatement(sql);
            stmt.setInt(1,id);
            rs=stmt.executeQuery();
            if(rs.next())
            {
                Items item=new Items();
                item.setId(rs.getInt("id"));
                item.setName(rs.getString("name"));
                item.setCity(rs.getString("city"));
                item.setNumber(rs.getInt("number"));
                item.setPrice(rs.getInt("price"));
                item.setPicture(rs.getString("picture"));
                return item;
            }
            else
            {
                return null;
            }
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
            return null;
        }
        finally
        {
            if(rs!=null)
            {
                try
                {
                    rs.close();
                    rs=null;
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
            }
            if(stmt!=null)
            {
                try
                {
                    stmt.close();
                    stmt=null;
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
            }
        }
    }
    public ArrayList<Items> getViewList(String list)
    {
        ArrayList<Items> itemlist=new ArrayList<Items>();
        int iCount=5;
        if(list!=null&&list.length()>0)
        {
            String[] arr=list.split("#");
            if(arr.length>=5)
            {
                for(int i=arr.length-1;i>=arr.length-iCount;i--)
                {
                    itemlist.add(getItemsById(Integer.parseInt(arr[i])));
                }
            }
            else
            {
                for(int i=arr.length-1;i>=0;i--)
                {
                    itemlist.add(getItemsById(Integer.parseInt(arr[i])));
                }
            }
            return itemlist;
        }
        else
        {
            return null;
        }
    }

以及两个jsp文件:

商品展示:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page import="dao.ItemsDAO" %>
<%@ page import="entity.Items" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">       
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<style type="text/css">
	   div{
	      float:left;
	      margin: 10px;
	   }
	   div dd{
	      margin:0px;
	      font-size:10pt;
	   }
	   div dd.dd_name
	   {
	      color:blue;
	   }
	   div dd.dd_city
	   {
	      color:#000;
	   }
	</style>
  </head>
  
  <body>
    <h1>商品展示</h1>
    <hr>
     <center>
     <table width="750" height="60" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td>
               <%
                   ItemsDAO itemsDao=new ItemsDAO();
                   ArrayList<Items> list=itemsDao.getAllItems(); 
                   if(list!=null&&list.size()>0)
                   {
                       for(int i=0;i<list.size();i++)
                       {
                          Items item=list.get(i); 
               %>
               <div>
                   <dl>
                     <dt>
                       <a href="details.jsp?id=<%=item.getId()%>"><img src="images/<%=item.getPicture() %>" width="120" height="90" border="1"/></a>
                     </dt>
                     <dd class="dd_name"><%=item.getName() %></dd>
                     <dd class="dd_city">产地:<%=item.getCity() %>  价格:¥<%=item.getPrice() %></dd>
                   </dl>
               </div>
               <%
                       }
                   }
                
               %>
            </td>
          </tr>  
       </table>
     </center>
  </body>
</html>

 商品详细内容以及浏览记录:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page import="dao.ItemsDAO" %>
<%@ page import="entity.Items" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'details.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<style type="text/css">
	   div{
	      float:left;
	      margin-left: 30px;
	      margin-right:30px;
	      margin-top: 5px;
	      margin-bottom: 5px;
	   }
	   div dd{
	      margin:0px;
	      font-size:10pt;
	   }
	   div dd.dd_name
	   {
	      color:blue;
	   }
	   div dd.dd_city
	   {
	      color:#000;
	   }
	</style>
  </head>
  
  <body>
  <h1>商品详情</h1>
    <hr>
    <center>
    <table width="750" height="60" cellpadding="0" cellspacing="0" border="0"> <br>
       <tr>
         <!--  商品详情 -->
         <%
            ItemsDAO itemDao=new ItemsDAO();
            Items item=itemDao.getItemsById(Integer.parseInt(request.getParameter("id")));
            if(item!=null)
            {
         %>
         <td width="70%" valign="top">
            <table>
               <tr>
                  <td rowspan="4"><img src="images/<%=item.getPicture() %>" width="200" height="160"></td>
               </tr>
               <tr>
                  <td><B><%=item.getName() %></B></td>
               </tr>
               <tr>
                  <td>产地:<%=item.getCity() %></td>
               </tr>
               <tr>
                  <td>价格: <%=item.getPrice() %>¥</td>
               </tr>
            </table>
         </td>
         <%
            }
          %>
          <%
            String list="";
            Cookie[] cookies=request.getCookies();
            if(cookies!=null&&cookies.length>0)
            {
            
                for(Cookie c:cookies)
                {
                     if(c.getName().equals("listViewCookie"))
                     {
                         list=c.getValue();
                     }
                 }
            }
                 list+=request.getParameter("id")+"#";
                 String[] arr=list.split("#");
                 if(arr!=null&&arr.length>0)
                 {
                     if(arr.length>1000)
                     {
                         list="";
                     }
                 }
                 Cookie cookie=new Cookie("listViewCookie",list);
                 response.addCookie(cookie);
           %> 
           <td width="30%" bgcolor="#EEE" align="center">
              <br>
              <b>你浏览过的商品</b><br>
              <%
                 ArrayList<Items> itemlist =itemDao.getViewList(list);
                 if(itemlist!=null&&itemlist.size()>0)
                 {
                     System.out.println("itemlist.size="+itemlist.size());
                     for(Items i:itemlist)
                     {
                        
               %> 
                <div>
                   <dl>
                     <dt>
                       <a href="details.jsp?id=<%=i.getId()%>"><img src="images/<%=i.getPicture() %>" width="120" height="90" border="1"/></a>
                     </dt>
                     <dd class="dd_name"><%=i.getName() %></dd>
                     <dd class="dd_city">产地:<%=i.getCity() %>  价格:¥<%=i.getPrice() %></dd>
                   </dl>
               </div>   
               <%
                       }
                   }
               %>
          </td>
      </tr>   
    </table>
    </center> 
  </body>
</html>

  

原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/13926576.html