大二上每日总结
今日完成了讲解视频中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>

浙公网安备 33010602011771号